接口对接遇到的神坑

2019-01-21 02:42:01来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

情况一:

????head头的编码与body报文编码不一致,curl请求导致接收到的报文不完整

问????题:

????比如某次对接过程中,对方返回的head头是gbk编码(Content-type: text/xml; charset=GBK),但是body里面的报文是UTF-8编码,导致返回的报文不完整

详细描述:

????具体原因是因为GBK编码,一个中文字符是占用两个字节,而UTF-8编码一个中文字符是占用三个字节,curl请求响应回来的字符长度是按照GBK编码计算的,导致计算出来的报文字符长度是小于实际长度的,所以读取响应数据的时候,读到计算出来的长度时候就停止了,也就会出现返回的报文不完整情况

解决方案:

????不采用curl方法进行请求,改用file_get_contents方法,因为file_get_contents不会返回head信息,所以不会出现编码不一致的情况


原文链接:https://www.cnblogs.com/dreamydeng/p/10282646.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:dedecmsv5.7 前台模版里输出变量

下一篇:Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由