如何在 Spring 控制器中检索 FORM/POST 参数?
How to retrieve FORM/POST Parameters in Spring Controller?
我有以下响应应该来自 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
我以前在使用 Spring 控制器时使用过 @RequestParameter
,但是我不确定如何从上面的响应中获取数据,例如 data[merges][ 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
) {
}
感谢您的帮助!
您只需将 WebRequest 作为参数注入控制器 POST 方法,然后使用 Mailchimp webhook 中的给定参数请求 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]);
}
就这些了...
此致。
我有以下响应应该来自 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
我以前在使用 Spring 控制器时使用过 @RequestParameter
,但是我不确定如何从上面的响应中获取数据,例如 data[merges][ 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
) {
}
感谢您的帮助!
您只需将 WebRequest 作为参数注入控制器 POST 方法,然后使用 Mailchimp webhook 中的给定参数请求 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]);
}
就这些了...
此致。