千万要小心啊, 同学们啊, curl 引发了很多的奇怪问题啊

 

curl 竟然需要 把url 用单引号括起来? .. 否则就无法传递query参数.. 中文也是。

真是把人搞晕了, 还以为是 @GetMapping 哪里的问题, 又以为是 参数前面不能添加 @Validated ..

我的请求脚本是:
curl -v http://localhost:9080/v2/paypalChargeCallback?token=7V603167LV687545X&returnUrl=www.qq.com&random=12

@GetMapping("/paypalChargeCallback")
    public String paypalChargeCallback(@Validated PaypalChargeCallbackReqDTO reqDTO, @RequestHeader(value = "referer", required = false) String referer) { ...}
  • 1.
  • 2.



其中:

@Data
public class PaypalChargeCallbackReqDTO {    @ApiModelProperty(value = "paypal订单号", required = true)
    private String token;    //资金账户
//    @ApiModelProperty(value = "资金账户", required = true)
//    @NotBlank(message = MsgCdConstant.ACCOUNT_NOT_BLANK)
//    private String account;    @ApiModelProperty(value = "用户paypalId")
    private String PayerID;    @ApiModelProperty(value = "前端跳转地址")
    private String returnUrl;    @ApiModelProperty(value = "随机的交易验证码")
    private String random;}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

发现只能传递一个参数, 那就是 token, 其他参数都是null, 为什么呢?

难道是不能通过对象来接收? 为什么服务器中可以, 测试没有问题, 本机就不行了呢?

其实也不是本机不行, 而是 通过 curl 不行, 最本质的原因是 需要 把url 用单引号括起来!

why?

因为 & 在 git bash 中被解析了吧, 从而失去了字面含义 !!

 


难道?

需要 -X GET ? 不需要, 因为默认就是GET

注意curl的-X参数不能小写, 否则:
Could not resolve proxy: GET
* Closing connection 0
curl: (5) Could not resolve proxy: GET

因为x参数表示代理: -x, --proxy [protocol://]host[:port] Use this proxy