복붙노트

[SPRING] Spring Controller에서 FORM / POST 매개 변수를 가져 오는 방법은 무엇입니까?

SPRING

Spring Controller에서 FORM / POST 매개 변수를 가져 오는 방법은 무엇입니까?

MailChimp webhook URL에서 오는 다음과 같은 응답이 있습니다.

BODY 행입니다.

RAW BODY

    type=usub&fired_at=2015-07-23+17%3A19%3A34&data%5Baction%5D=unsub&data%5Breason%5D=manual&data%5Bid%5D=9383uy636&data%5Bemail%5D=youremail%40YOURDOMAIN.com&data%5Bemail_type%5D=html&data%5Bip_opt%5D=202.9.3.003&data%5Bweb_id%5D=404004&data%5Bmerges%5D%5BEMAIL%5D=YOUREMAIL%40YOURDOMAIN.com&data%5Bmerges%5D%5BFNAME%5D=NAME&data%5Bmerges%5D%5BLNAME%5D=LASTNAME&data%5Blist_id%5D=2288883
 FORM/POST PARAMETERS

fired_at: 2015-07-22 12:19:34
data[email]: YOUREMAIL@DOMAINNAME.com
data[id]: 56775409ta
data[web_id]: 09833944
data[merges][EMAIL]: YOUREMAIL@DOMAINNAME.com
type: unsub
data[list_id]: 99884hy372
data[merges][FNAME]: Name
data[ip_opt]: 202.0.9.3333
data[reason]: manual
data[email_type]: html
data[action]: unsub
data[merges][LNAME]: LastName

**QUERYSTRING key: a4483983hu473004884j0x**

HEADERS

Accept: */*
Total-Route-Time: 0
Host: requestb.in
Connection: close
Content-Length: 395
User-Agent: MailChimp.com
Connect-Time: 0
Via: 1.1 vegur
X-Request-Id: 6633d8-653e-4cea-884j-9933ju4773h
Content-Type: application/x-www-form-urlencoded

스프링 컨트롤러로 작업 할 때 이전에 @RequestParameter를 사용했지만 데이터 [병합] [FNAME]과 같은 위의 응답에서 데이터를 가져 오는 방법을 모르겠습니다.

Spring 컨트롤러 내에서 QueryString을 어떻게 얻을 수 있습니까? QUERYSTRING 키 : a4483983hu473004884j0x

//I have the following code to begin with
@RequestMapping("/unsubscribewebhook")
    public ZapJasonMessage unsubscribeWebHook(
    @RequestParam("key") String key,
    @RequestParam ("data[merges][FNAME]") String firstName
) {

}

도와 줘서 고마워!

해결법

  1. ==============================

    1.컨트롤러 POST 메서드에 매개 변수로 WebRequest를 삽입 한 다음 Mailchimp 웹 훅에서 지정된 매개 변수로 getParameter ()를 요청하면됩니다.

    컨트롤러 POST 메서드에 매개 변수로 WebRequest를 삽입 한 다음 Mailchimp 웹 훅에서 지정된 매개 변수로 getParameter ()를 요청하면됩니다.

    예 :

    @RequestMapping(path="/MyUrl", method=RequestMethod.POST)
    public ModelAndView process(WebRequest request){
        System.out.println(request.getParameter("type"));
        System.out.println(request.getParameter("data[merges][EMAIL]"));
        return new ModelAndView([YOURVIEWHERE]);
    }
    

    그게 다야...

    문안 인사.

  2. from https://stackoverflow.com/questions/31594608/how-to-retrieve-form-post-parameters-in-spring-controller by cc-by-sa and MIT license