今天跟客户技术联调测试,我放做为httpclient,对方为httpserver端。 我方在c++中使用libcurl通过post方式发送数据给server,server端能收到数据,但是只能收到http头的数据,对于http体的数据收不到。 因为使用centos系统作为服务器,通过tcpdump进行抓包。发现,我方服务器在http数据发出的时候包头包体都发出去了,然后让httpserver方抓包,结果server端也收到了http包头和包体,就是程序显示找不到包体。但是通过浏览器和其他方式从我方发送请求给server端,httpserver端都能收到,唯独使用我方的程序调用libcurl发送对方收不到包体。然后对比两种方式server端接收到的数据流。发现两次发送的包头内容不一样。 我方使用libcurl发送包头中:Content-Type:application/json; 我方使用浏览器发送时:Content-Type:application/x-www-form-urlencoded; 然后尝试将libcurl中发送的http头中参数改成Content-Type:application/x-www-form-urlencoded;结果奇迹出现了,对方正常接收了。 通过,这个事件可知Content-Type将会影响到某些httpserver接收数据的http体的接收。 |