php – Soap SOAP_COMPRESSION_GZIP验证是否有效

使用php5,我正在基于不使用Header元素的wsdl向web服务发出soap请求.

一切,我现在被要求在我的肥皂要求上使用gzip压缩.

所以我的客户现在看起来像这样:

$client = new SoapClient('xxxxx.wsdl', 
                         array('compression'=> 
                                     SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP, 
                                'trace' => 1, )
                          ); 

我google了一下,我发现网站说我也应该在SOAP_COMPRESSION_GZIP之后添加gzip压缩级别(添加| 9),但是当我这样做时,我得到一个肥皂故障

“Content is not allowed in prolog”

所以我放下了管子9)

题:
我不是肥皂专家,上面的表示法我没有在出站xml请求和退货请求上得到任何错误.我怎么知道我的gzip压缩是否正常工作,如果是,那么另一方面是否已经确认?

最佳答案 您可以检查SoapClient :: __ getLastRequestHeaders并检查内容编码和内容长度标头.如果请求被压缩,则Content-Length值应小于有效负载大小

如果Web服务不在HTTPS上,您还可以运行WireShark之​​类的数据包嗅探器并捕获请求并查看确切传输的内容.

点赞