10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

千万要小心啊, 同学们啊, 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) { ...}

其中:

@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;

}


发现只能传递一个参数, 那就是 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

 

 


 

posted on 2024-07-15 00:33  CanntBelieve  阅读(15)  评论(0编辑  收藏  举报