Php fsockopensoap请求
我正在尝试使用php向服务发送SOAP消息。 我想用fsockopen来做,下面是代码:Php fsockopensoap请求,php,sockets,soap,fgets,Php,Sockets,Soap,Fgets,我正在尝试使用php向服务发送SOAP消息。 我想用fsockopen来做,下面是代码: <?php $fp=@fsockopenssl://xmlpropp.worldspan.com,443,$errno,$errstr 如果!资源是$fp吗{ die'fsockopen调用失败,错误号为“$errno”。$errstr; } $soap\u out=POST/xmlts HTTP/1.1\r\n; $soap_out.=主机:212.127.18.11:8800\r\n; //$s
<?php
$fp=@fsockopenssl://xmlpropp.worldspan.com,443,$errno,$errstr
如果!资源是$fp吗{
die'fsockopen调用失败,错误号为“$errno”。$errstr;
}
$soap\u out=POST/xmlts HTTP/1.1\r\n;
$soap_out.=主机:212.127.18.11:8800\r\n;
//$soap\u out.=用户代理:MySOAPisOKGuys\r\n;
$soap_out.=内容类型:text/xml;charset='utf-8'\r\n;
$soap\u out.=内容长度:999\r\n\r\n;
$soap\u put.=连接:关闭\r\n;
$soap\u out.=SOAPAction:\r\n;
$soap_out.='
世界范围
这是一个测试
';
上面的代码只是挂起。如果我删除while,它的类型是ok,那么我假设问题出在$soap_in.=fgets$fp,100
任何关于正在发生的事情的想法,我建议使用curl进行soap操作 这不仅仅是打开套接字然后向其写入“POST…”的问题-您需要一个完整的HTTP堆栈来解析可能的响应,例如,什么不同的编码?部分内容?。使用卷曲 其当前失败的原因可能是远程系统配置为使用keepalives,这也可以通过使用适当的HTTP堆栈来解决
C.在服务器中未安装php curl扩展,因此无法安装它。我怎样才能打开FSock。上面的代码似乎是正确的。
if(!fputs($fp, $soap_out, strlen($soap_out)))
echo "could not write";
echo "<xmp>".$soap_out."</xmp>";
echo "--------------------<br>";
while (!feof($fp))
{
$soap_in .= fgets($fp, 100);
}
echo "<xmp>$soap_in</xmp>";
fclose($fp);
echo "ok";