[請益] nusoap問題

看板PHP作者 (opqr)時間9年前 (2016/03/29 14:22), 9年前編輯推噓0(0031)
留言31則, 2人參與, 最新討論串1/1
最近在寫一個使用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://www.ptt.cc/bbs/PHP/M.1459232563.A.BF8.html

03/29 15:50, , 1F
如果你開瀏覽器可以連上那個網址嗎?
03/29 15:50, 1F

03/29 16:14, , 2F
可以 所以非常納悶
03/29 16:14, 2F

03/29 17:40, , 3F
有curl的話,試試看先 $client->setUseCURL(true)
03/29 17:40, 3F

03/29 17:42, , 4F
另外檢查一下 php.ini 有沒有限制 fsockopen 的使用
03/29 17:42, 4F

03/29 17:43, , 5F
像是 allow_url_fopen 或是 disable_functions
03/29 17:43, 5F

03/29 17:46, , 6F
nusoap會用到fsockopen,所以你可以把問題簡化
03/29 17:46, 6F

03/29 17:47, , 7F
先確認 fsockopen 能用, 也能開啟你要的網址
03/29 17:47, 7F

03/29 18:04, , 8F
$client->setUseCURL(true) 出現HTTP Error :cURL ERROR
03/29 18:04, 8F

03/29 18:04, , 9F
Failed connet ti xx.xxx.xx.xxx:80...下面有content:
03/29 18:04, 9F

03/29 18:04, , 10F
http_code:0……等文字
03/29 18:04, 10F

03/29 18:04, , 11F
想請問php.ini裡面沒有fsockopen的屬性是要自己增加嗎
03/29 18:04, 11F

03/29 18:04, , 12F
還有allow_url_open是設on. disabled_functions的設off
03/29 18:04, 12F

03/29 18:04, , 13F
03/29 18:04, 13F

03/29 18:22, , 14F
allow_url_fopen on, disable_functions應該空的
03/29 18:22, 14F

03/30 08:40, , 15F
w大我發現$client->setUseCURL(true)並沒有錯誤訊息 而p
03/30 08:40, 15F

03/30 08:40, , 16F
hp.ini的allow_url_opqn跟disable_functions的設定也都
03/30 08:40, 16F

03/30 08:40, , 17F
如你所說的那樣 這樣還有可能是哪裡的問題
03/30 08:40, 17F

03/30 10:57, , 18F
你先用fsockopen試試看能不能抓到google.com的html
03/30 10:57, 18F

03/30 10:58, , 19F
可以的話就不會是fsockopen的問題,往防火牆檢查吧
03/30 10:58, 19F

03/30 10:59, , 20F
遇到這種情況我通常是wireshark抓封包看一下就大概知道了
03/30 10:59, 20F

03/30 11:00, , 21F
封包有沒有過來,連線有沒有建立,有沒有回應等等的
03/30 11:00, 21F
推文送不出去只好這樣用 推文中的錯誤訊息是$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

03/30 13:24, , 22F
我另外用一支程式參照這個網站的做法 http://goo.gl/LEq
03/30 13:24, 22F

03/30 13:24, , 23F
pzD. 結果出現這個畫面 http://i.imgur.com/y1TKCQq.jpg
03/30 13:24, 23F

03/30 13:24, , 24F
這樣是我的socket出問題了嗎 囧
03/30 13:24, 24F

03/30 14:41, , 25F
你可以先在本機跑,確認你的php能抓到東西
03/30 14:41, 25F

03/30 14:42, , 26F
然後放到server就不行了的話,檢查看看IIS的權限?
03/30 14:42, 26F

03/30 14:43, , 27F
因為我對IIS不熟,不知道有沒有可能限制這個
03/30 14:43, 27F

03/30 14:53, , 28F
另外fsockopen沒那麼複雜,看官方的 example #1 就可以了
03/30 14:53, 28F

用官方的#1出現這個畫面 http://i.imgur.com/VHU5mi9.jpg
我覺得應該沒問題 我在朝IIS去查詢 ※ 編輯: opqr9877 (111.81.13.10), 03/30/2016 16:33:16

03/30 16:46, , 30F
看起來是成功啦,fsockopen沒有嫌疑了
03/30 16:46, 30F

03/31 11:38, , 31F
好的 謝謝w大的幫忙
03/31 11:38, 31F
文章代碼(AID): #1M-Xyplu (PHP)
文章代碼(AID): #1M-Xyplu (PHP)