首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fsockopen soap请求

fsockopen soap请求
EN

Stack Overflow用户
提问于 2010-04-22 15:10:38
回答 2查看 2K关注 0票数 0

我正在尝试使用php向服务发送SOAP消息。

我想用fsockopen来做这件事,下面是代码:

代码语言:javascript
复制
<?php

$fp = @fsockopen("ssl://xmlpropp.worldspan.com",443,$errno,$errstr);

如果(!is_resource($fp)) { die('fsockopen调用失败,返回错误号‘。$errno。'.‘。$errstr);}

$soap_out = "POST /xmlts HTTP/1.1\r\n";$soap_out .=“主机: 212.127.18.11:8800\r\n";//$soap_out .=”用户代理: MySOAPisOKGuys \r\n";$soap_out .=“内容类型:文本/xml;字符集=‘utf-8’\r\n”;$soap_out .=“内容长度: 999\r\n\r\n";$soap_put .=”连接:关闭\r\n“;$soap_out .= "SOAPAction:\r\n";$soap_out .=‘Worldspan This is a test ';

代码语言:javascript
复制
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";

上面的代码挂起了。如果我删除while它输入ok,那么我认为问题出在$soap_in .= fgets($fp,100)

对正在发生的事情有什么想法吗

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-22 20:41:36

这不仅仅是打开一个套接字然后写“POST...”的问题。你需要一个完整的HTTP堆栈来解析可能的响应(例如,什么不同的编码?部分内容?)。使用cURL。

它目前失败的原因可能是因为远程系统被配置为使用keepalives -这也可以通过使用适当的HTTP堆栈来解决。

结果表明,C.

票数 0
EN

Stack Overflow用户

发布于 2010-04-22 15:49:22

我建议对soap操作使用curl。http://www.zimbra.com/forums/developers/9890-solved-simple-soap-admin-example-php.html#post52586

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2688849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档