当前位置: 移动技术网 > IT编程>开发语言>PHP > 接口对接遇到的神坑

接口对接遇到的神坑

2019年01月18日  | 移动技术网IT编程  | 我要评论

蒙面唱将2017,安吉的奇妙旅程,艾薇儿被打

情况一:

    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信息,所以不会出现编码不一致的情况

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网