我在使用 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://.***.*/general/html/pages/layouts/columnContent.jsp Content-Language: de-DE 内容类型: text/html;charset=UTF-8 日期: 星期五, 18 五月 2012 15:50:01 GMT 传输编码: 分块 连接: 保持活动状态 连接: 传输编码 设置-cookie: JSESSIONID=0a6d28f530d798c4676f5949491a82035d98e25ff6f.e38Ka38Sax4TbO0MaheKbhaTbh8Te6fznA5Pp7ftolbGmkTy;路径=/缓存控制:私有
最后一个请求标头:POST/html/de_DE/index_DE/index.html HTTP/1.1 主机:。**.*连接:保持活动 用户代理:PHP-SOAP/5.2.13 内容类型:文本/xml;charset=utf-8 SOAPAction: " 内容长度: 937 授权: Basic c3RyZ19ka29zaGF2ZTpsNFB3TVZqDlRhZUc1cg== Cookie: JSESSIONID=0a6e28e930d70301b8f6dd3e8a2598bff7cef065809a.e38Pa3mLbx4Oci0Mah4Qb34TbxmOe6fznA5Pp7etoltGmkTy;BIGipServerPirobase=254438666.20480.0000;
PHP 版本: 5.2.13
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.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",
),
)
),
)
);
我在使用 UPS 运输 API 时遇到问题
这是我之前的肥皂客户端
$client = new SoapClient("Your URL or Manifest",
array(
'soap_version' => 'SOAP_1_1',
'trace' => 1
)
(;
这解决了问题(我使用的是 PHP 7.2(
$client = new SoapClient("Your URL or Manifiest",
array(
'trace' => 1,
'stream_context' => stream_context_create(
array(
'http' => array(
'protocol_version' => 1.0,
),
)
),
)
(;