2009-06-10 161 views
0

我使用web服務來獲得XML格式的一些結果...這裏是代碼使用PHP Web服務將返回XML

public function getXML() 
{ 
    $url=$this->constructURL(); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $xml = curl_exec($ch); 
    if ($error = curl_error($ch)) { 
    echo "Error: $error<br />\n"; 
    } 
    curl_close($ch); 
    return $xml; 
} 


$resultXML = $api->getXML(); 
echo $resultXML; 

的一部分,當我回顯「$ ASD」它什麼都不做但balnk網頁...

但是當我直接在瀏覽器中使用$ url的值就產生一個XML結果...

任何一個可以建議我在哪裏,我錯了???

ADDED .........

當我所含的誤差curl_exec

它給出了一個錯誤

錯誤後報告:SSL證書的問題,驗證該CA證書是好。詳細信息:錯誤:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:證書驗證失敗

也蔭USIG HTTPS:// blahblh的要求

+1

是否與任何其他URL捲曲的工作?您是否正確設置了error_reporting和display_errors? – 2009-06-10 09:55:18

+0

請格式化你的代碼... – Jet 2009-06-10 09:58:27

+0

是的,我使用雅虎SPEL檢查服務......和捲曲的作品與它的罰款。此外,我還沒有設定錯誤報告尚未 – Andromeda 2009-06-10 10:00:28

回答

4

解決了這個問題....

,因爲我使用https://開頭,我必須包含一個單一的代碼行裏面設置捲曲選項

curl_setopt($ CH,CURLOPT_SSL_VERIFYPEER ,FALSE);

1

我我不是盲目的 - 你 「的getXML」 是的方法類(即myWebService)。那麼,你覺得你的$asd = getXML();應該如何工作?

我想你的代碼必須是這樣的:

... 
$service = new myWebService(); 
$asd = $service->getXML(); 
echo $asd; 

新增:

我認爲,瀏覽器只是不顯示你的XML,因爲它收到內容類型文本頁眉/ html默認。嘗試看看網頁的源文件或寫呼應

header('Content-type: text/xml'); 

之前的任何瀏覽器,假設這是HTML應該忽略未知的標籤不屬於HTML兼容。所以你的XML被解釋爲未知的非HTML標籤。