簡體   English   中英

SOAP客戶端在第一個請求后拋出“獲取HTTP標頭時出錯”

[英]SOAP client throws “Error fetching http headers” after first request

我需要結識SOAP,並編寫了一個連接到隨機Web服務的簡單客戶端。 (事實證明,即使找到工作的服務也有點麻煩。)

到目前為止,我擁有的代碼似乎可以正常工作-但實際上是這樣: 每十秒鍾只能工作一次

當我第一次加載頁面時,它顯示了我期望的結果-一個對象的var_dump-但是當我緊接着重新加載頁面時,我看到的只是Error Fetching http headers 現在,無論我刷新多少次,大約需要十秒鍾,直到再次獲得正確的結果,然后重復該過程-刷新得太快,出現錯誤。

我看不到HTTP級別發生了什么,即使可以,我也不確定能否得出正確的結論。
對此處發布的類似 問題的答案包括將keep_alive選項設置為false ,或擴展default_socket_timeout ,但是這兩種解決方案都不適合我。

因此,長話短說: 這是服務方面的問題還是我可以解決的問題,如果是后者,如何解決?
這是到目前為止我得到的代碼:

<?php

    error_reporting(-1);
    ini_set("display_errors", true);
    ini_set("max_execution_time", 600);
    ini_set('default_socket_timeout', 600);

    $wsdl = "http://api.chartlyrics.com/apiv1.asmx?WSDL";

    try
    {
        $client = new SoapClient($wsdl, array(
            "keep_alive" => false,
            "trace" => true
        ));

        $response = $client->SearchLyricDirect(array(
            "artist" => "beatles",
            "song" => "norwegian wood"
        ));
        var_dump($response);
    }
    catch (Exception $e)
    {
        echo $e->getMessage();
    }

?>

任何幫助,將不勝感激。 (此外,如果您能啟發我為什么在本地保存WSDL可以使該過程加快30秒,那也很好。我認為這是DNS查找需要花費大量時間嗎?)

事實證明,與服務器整體的連接相當不穩定。
我(以及我曾問過的其他一些問題)只是嘗試在瀏覽器中打開WSDL文件時遇到了類似的問題-它是第一次工作,但刷新后會以很長時間中斷連接。

盡管我真的不能說出問題出在哪里,但這確實表明問題出在服務器而不是我的客戶端上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM