gpt4 book ai didi

Java Spring Controller 处理一个荒谬的 url

转载 作者:行者123 更新时间:2023-11-30 05:56:51 24 4
gpt4 key购买 nike

好吧,我正在使用名为 Thrive cart 的支付服务,我正在为我正在创建的成员(member)网站执行此操作。当用户付款后,我希望他们被重定向到一个 URL,我可以在其中使用该数据来更新当前用户信息。

在参数中发送的数据是疯狂的:

http://localhost:5000/user/welcome?thrivecart%5Baccount_id%5D=3196&thrivecart%5Baccount_name%5D=testacount&thrivecart%5Bcustomer%5D%5Bemail%5D=testname8%40gmail.com&thrivecart%5Bcustomer%5D%5Baddress%5D%5Bcountry%5D=GB&thrivecart%5Bcustomer%5D%5Baddress%5D%5Bzip%5D=pe303wu&thrivecart%5Border%5D%5B0%5D%5Bt%5D=product&thrivecart%5Border%5D%5B0%5D%5Bid%5D=6&thrivecart%5Border%5D%5B0%5D%5Bn%5D=Monthly+membership&thrivecart%5Border%5D%5B0%5D%5Bp%5D=799&thrivecart%5Border%5D%5B0%5D%5Bq%5D=1&thrivecart%5Border%5D%5B0%5D%5Bpo%5D=60120&thrivecart%5Border%5D%5B1%5D%5Bt%5D=product&thrivecart%5Border%5D%5B1%5D%5Bid%5D=6&thrivecart%5Border%5D%5B1%5D%5Bn%5D=Monthly+membership&thrivecart%5Border%5D%5B1%5D%5Bp%5D=799&thrivecart%5Border%5D%5B1%5D%5Bq%5D=1&thrivecart%5Border%5D%5B1%5D%5Bpo%5D=60120&thrivecart%5Border_currency%5D=GBP&thrivecart%5Border_id%5D=1041278&thrivecart%5Border_tax%5D=0.2&thrivecart%5Border_tax_id%5D=gb&thrivecart%5Border_total%5D=799&thrivecart%5Bpayment_processor%5D=paypal&thrivecart%5Bproduct_id%5D=6&thrivecart%5Bpurchases%5D%5B0%5D=6&thrivecart%5Bpurchases%5D%5B1%5D=6&thrivecart_hash=a5b711d2288b4cb587511811bc0a3473

到目前为止,我已经设置了一个没有被击中的简单 Controller :

@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/welcome", method = RequestMethod.POST)
public void welcomeMember(@PathVariable String data) {

System.out.println(data);
}
}

我该如何处理这样疯狂的数据?我必须指定每个路径参数吗?

最佳答案

首先,您似乎获取的不是路径元素,而是请求参数,因此您需要 @RequestParam 注解来获取值。

由于请求参数太多,我还建议只采用一个参数,即 Map<String, String> 。该映射将包含所有参数作为键/值对,例如:

  • 键:“thrivecart[account_id]”
  • 值:“3196”

如果您不确定收到的是 POST 还是 GET 请求,您还可以添加第二个参数来接收 HttpMethod .

将 RestController 更改为:

@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/welcome")
public void welcomeMember(@RequestParam Map<String, String> data, HttpMethod method) {
System.out.println(method);
System.out.println(data);
}
}

关于Java Spring Controller 处理一个荒谬的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53022110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com