记录Libcurl POST 数据 返回 400错误的问题

这是一个小问题,网址中的非法字符需要转换,像我这样不熟悉web的人才会犯这个错,在此记录一下。

场景是使用C++写了一个http客户端,使用libcurl post数据。

开发前使用postman做了测试,然后比照postman的生成的代码,封装了函数,结果测试发现,大致同样的headers和body,自己写的程序总是返回400错误,网上搜到的各种办法都尝试了没有用,最后只有装了个wireshark捕获了发送请求的帧发现了问题所在。

原因是uri中使用了网址中不能使用的字符,也就是非法字符,网址字符都是ASCII的,有些字符不在其中,需要转换为对应的字符编码,有兴趣的可以去查看html字符实体。

举个例子:http://127.0.0.1:8080/api/{test}/add

转换结果:http://127.0.0.1:8080/api/%7Btest%7D/add

至于postman为什么不犯错?因为它发送前自动转换了地址,且在界面上是看不出来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值