作者opqr9877 (opqr)
看板PHP
标题[请益] nusoap问题
时间Tue Mar 29 14:22:38 2016
最近在写一个使用nusoap的网页
目前确定的是client端与server端互相ping的到
两端的防火墙也都关闭了
client端版本为windows server 2012 IIS8.5
server端版本为windows. server2003 IIS6
1
可是在call的时候却没有抓到资料出现此讯息
err:HTTP Error:couldn't open socket connection to server
http://xx.xxx.xx.xxx/w
,因为连线的主机无法回应
想请问原因及解决方法
程式码如下
$url='
http://xx.xxx.xx.xxx/webservice.asmx?wsdl';
$client =new nusoap_client($url,false);
$funcname='chkmemberdata';
$params=array('menid'=>'testmen','pwd'=>'0000');
$backarr=$client->call($funcname,$params);
if($err=$client->getError()){
echo "err:".$err;
}
手机排版
造成阅读不适请见谅
-----
Sent from JPTT on my Sony C6602.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.81.217.206
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1459232563.A.BF8.html
1F:→ weiclin: 如果你开浏览器可以连上那个网址吗?03/29 15:50
2F:→ opqr9877: 可以 所以非常纳闷03/29 16:14
3F:→ weiclin: 有curl的话,试试看先 $client->setUseCURL(true)03/29 17:40
4F:→ weiclin: 另外检查一下 php.ini 有没有限制 fsockopen 的使用03/29 17:42
5F:→ weiclin: 像是 allow_url_fopen 或是 disable_functions03/29 17:43
6F:→ weiclin: nusoap会用到fsockopen,所以你可以把问题简化03/29 17:46
7F:→ weiclin: 先确认 fsockopen 能用, 也能开启你要的网址03/29 17:47
8F:→ opqr9877: $client->setUseCURL(true) 出现HTTP Error :cURL ERROR03/29 18:04
9F:→ opqr9877: Failed connet ti xx.xxx.xx.xxx:80...下面有content:03/29 18:04
10F:→ opqr9877: http_code:0……等文字03/29 18:04
11F:→ opqr9877: 想请问php.ini里面没有fsockopen的属性是要自己增加吗03/29 18:04
12F:→ opqr9877: 还有allow_url_open是设on. disabled_functions的设off03/29 18:04
13F:→ opqr9877: 吗03/29 18:04
14F:→ weiclin: allow_url_fopen on, disable_functions应该空的 03/29 18:22
15F:→ opqr9877: w大我发现$client->setUseCURL(true)并没有错误讯息 而p03/30 08:40
16F:→ opqr9877: hp.ini的allow_url_opqn跟disable_functions的设定也都03/30 08:40
17F:→ opqr9877: 如你所说的那样 这样还有可能是哪里的问题03/30 08:40
18F:→ weiclin: 你先用fsockopen试试看能不能抓到google.com的html03/30 10:57
19F:→ weiclin: 可以的话就不会是fsockopen的问题,往防火墙检查吧03/30 10:58
20F:→ weiclin: 遇到这种情况我通常是wireshark抓封包看一下就大概知道了03/30 10:59
21F:→ weiclin: 封包有没有过来,连线有没有建立,有没有回应等等的03/30 11:00
推文送不出去只好这样用
推文中的错误讯息是$client->setusecurl(true);之後再$clie!nt->call(funcname,$para
ms); 导致的错误讯息 $client->request显示的内容为
Host, :xx.xxx.xx.xxx
SOAPAction:""
content-length:551
google的网页我会在试试看 谢谢
※ 编辑: opqr9877 (111.81.13.10), 03/30/2016 11:22:17
24F:→ opqr9877: 这样是我的socket出问题了吗 囧03/30 13:24
25F:→ weiclin: 你可以先在本机跑,确认你的php能抓到东西03/30 14:41
26F:→ weiclin: 然後放到server就不行了的话,检查看看IIS的权限?03/30 14:42
27F:→ weiclin: 因为我对IIS不熟,不知道有没有可能限制这个03/30 14:43
28F:→ weiclin: 另外fsockopen没那麽复杂,看官方的 example #1 就可以了03/30 14:53
用官方的#1出现这个画面
http://i.imgur.com/VHU5mi9.jpg 我觉得应该没问题 我在朝IIS去查询
※ 编辑: opqr9877 (111.81.13.10), 03/30/2016 16:33:16
30F:→ weiclin: 看起来是成功啦,fsockopen没有嫌疑了 03/30 16:46
31F:→ opqr9877: 好的 谢谢w大的帮忙 03/31 11:38