PHP接口--curl请求导致接收到报文不完整怎么办

2023-06-14,,

小编给大家分享一下PHP接口--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信息,所以不会出现编码不一致的情况

以上是PHP接口--curl请求导致接收到报文不完整怎么办的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注本站行业资讯频道!

《PHP接口--curl请求导致接收到报文不完整怎么办.doc》

下载本文的Word格式文档,以方便收藏与打印。