curl_exec在循环中不起作用

时间:2012-11-27 15:07:26

标签: php loops curl

我有一个具有以下功能的课程。当我直接调用该函数时,它可以正常工作,但如果我在循环中调用该函数,则会出现错误:Cannot connect to host。有人能帮助我吗? :)提前谢谢。

public function exportProfile($xml) {

        $_myRequest = curl_init("https://www.example.com/postProfile");

        curl_setopt($_myRequest, CURLOPT_POST, 1);
        curl_setopt($_myRequest, CURLOPT_USERPWD, "testUser:testPassword");
        curl_setopt($_myRequest, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml"));
        curl_setopt($_myRequest, CURLOPT_POSTFIELDS,$xml );
        curl_setopt($_myRequest, CURLOPT_RETURNTRANSFER, 1);

        // do request, the response text is available in $_response
        $_response = curl_exec($_myRequest);

        $err = curl_error($_myRequest) ;

        echo $err;

        $_statusCode = curl_getinfo($_myRequest, CURLINFO_HTTP_CODE);

        // close cURL resource, and free up system resources
        curl_close($_myRequest);

        return simplexml_load_string($_response);       
    }

1 个答案:

答案 0 :(得分:0)

我无法通过一个简单的例子重现这个问题。您的示例代码似乎在CURLOPT_USERPWD中有语法错误,但我认为这与此无关。

听起来很可能在您查询的网站上存在速率限制,即当您连续几次击中它们时会将您锁定。

也许您可以通过尝试在循环外多次运行查询来调试,即手动调用它1/2/3次。