簡體   English   中英

在Curl中請求cUrl

[英]Request cUrl in Curl

我有這樣的動作

public function coordinatAction()
{
    $curl = curl_init('https://maps.googleapis.com/maps/api/geocode/json?latlng=30.0000000000,40.0000000000');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $aParams);

    //Sending request
    $result = curl_exec($curl);
    if (false === $result) {
        $sResult = curl_error($curl);
    };
    curl_close($curl);

    return $result;
}

並對此操作進行單元測試:

public function coordinatActionTest()
{
    $curl = curl_init();
    $params = [/** Some Params */]
    curl_setopt($curl, CURLOPT_URL, 'http://mysite.local/coordinate'); //path to my action
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $params);

    $response = curl_exec($curl);
    $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close($curl);

    $this->assertEquals(200, $httpCode, "Wrong HTTP Response Code");
}

當我執行測試時,我收到請求“ curl in curl”(測試中的curl調用動作中的curl),但是第二次curl因5分鍾后超時而失敗。 如果我只稱一個動作為卷曲,則一切正常,但雙重卷曲會超時。 有誰能解釋為什么會這樣

首先,請確保可以使用瀏覽器訪問該網址。 http://mysite.local/coordinate 您也可以使用curl命令來驗證鏈接。 例如:

curl -XPOST YOUR_URL -d _YOUR_PARAMS

其次,可能發生的情況是,如果沒有正確的用戶代理字符串,您的服務器將不接受任何請求。 我建議您在卷曲測試中使用CURLOPT_USERAGENT選項(對於任何瀏覽器,如Opera或Mozila)。

最后,檢查服務器的httpd.conf文件,並查看傳入請求所必需的其他參數是什么。

暫無
暫無

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

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