【问题标题】:"Error Fetching http body" with php SoapClient使用 php SoapClient “获取 http 正文时出错”
【发布时间】:2012-05-26 00:46:43
【问题描述】:

我在使用 Soap 向服务器提交用户数据时遇到了一些问题。我得到的只是:
获取 http 正文时出错,没有内容长度,连接关闭或分块数据 我是不是做错了什么?

$client = new SoapClient(APPPATH.'my.wsdl',array(
    'login' => 'user',
    'password' => 'pass',
    'location' => 'http://gimmeyadata.com/crm/regserv?wsdl',
    'trace' => true,
    )
);
$result = $client->register(array(
    'Email' => 'me@mail.com',
    'Gender' => 'm',
    'First name' => 'Oliver',
    'Last name' => 'Liermann',
    'Language code' => 'de-de',
));

最后一个响应头: HTTP/1.1 200 OK X-SiteConfidence: jenppb601 Content-Location: http://.***.* em>/general/html/pages/layouts/columnContent.jsp 内容语言:de-DE 内容类型:text/html;charset=UTF-8 日期:2012 年 5 月 18 日星期五 15:50:01 GMT 传输编码:分块连接:保持活动连接:传输编码集 Cookie:JSESSIONID=0a6d28f530d798c4676f59494491a82035d98e25ff6f.e38Ka38Sax4TbO0MaheKbhaTbh8Te6fznA5Pp7ftolbGmkTy; path=/ Cache-Control: 私有

最后一个请求头: POST /html/de_DE/index_DE/index.html HTTP/1.1 主机:.**.* 连接:Keep-Alive User-Agent : PHP-SOAP/5.2.13 内容类型: text/xml;字符集= UTF-8的SOAPAction: “” 内容长度:937授权:基本c3RyZ19ka29zaGF2ZTpsNFB3TVZqDlRhZUc1cg ==曲奇:JSESSIONID = 0a6e28e930d70301b8f6dd3e8a2598bff7cef065809a.e38Pa3mLbx4Oci0Mah4Qb34TbxmOe6fznA5Pp7etoltGmkTy; BIGipServerPirobase = 254438666.20480.0000;

PHP 版本:5.2.13

【问题讨论】:

  • 您使用的是哪个PHP版本,如果您启用了soap跟踪,请发布响应头。

标签: php soap soa


【解决方案1】:

尝试使用 PHP 5.3

$client = new SoapClient("< some url  >", 
    array(
        'trace' => 1,
        'stream_context' => stream_context_create(
            array(
                'http' => array(
                    'protocol_version' => 1.0,
                ),
            )
        ),
    )
);

【讨论】:

  • 我在 PHP 5.6.9 和 Apache 2.4.12 中遇到了这个问题。感谢您的解决方案!
  • 我只是浪费了几个小时,如果我没有找到这个答案可能会更多。顺便说一句,我在 php 7 上,这个问题仍然存在。谢谢
【解决方案2】:

使用 PHP 5.4.4,没有 Transfer-Encoding: chunked 就无法工作:

$client = new SoapClient("< some url  >", 
    array(
        'trace' => 1,
        'stream_context' => stream_context_create(
            array(
                'http' => array(
                    'protocol_version' => 1.0,
                    'header' => "Transfer-Encoding: chunked\r\n",
                ),
            )
        ),
    )
);

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多