繁体   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