2015-04-18 44 views
12

我想嘗試一下guzzle庫並通過他們的quickstart教程來關注向api發出http請求。Guzzle返回cURL錯誤3:<url>畸形的

然而,這似乎並沒有工作,因爲我得到以下錯誤:

cURL error 3: <url> malformed 

因爲我從來沒有與捲曲工作之前,我甚至不知道如何到錯誤消息來響應。這是我的代碼與我正在提出的請求:

$client = new Client(); 
    $client->get('/', ['verify' => true]); 

    $response = $client->get('https://api.github.com/'); 

    dd($response); 

我使用Laravel 5框架並在我的HomeController中調用索引方法。我也使用WAMP。

我會很感激任何幫助和建議,因爲我想嘗試一下。

以下是錯誤消息的圖片,我得到:(!不這樣做

Laravel 5 Error Message

+0

如果我的回答以下是有幫助的,你可以接受它:) –

+0

@loveAndHappiness你有沒有得到任何解決方案來解決這個問題?我在我的代碼中有同樣的問題:(請幫助我 –

+0

我還沒有時間來執行這個項目的任何解決方案,所以我不知道提供的解決方案是否解決了這個問題 – LoveAndHappiness

回答

5

如果要禁用驗證:

$response = $client->get('https://api.github.com/', ['verify' => false]); 

而不是完全禁用驗證,這可能通過提供適當的CA捆綁文件來解決。請參閱Guzzle文檔中的verify

$client->setDefaultOption(
    'verify', 
    'C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt' 
); 
+0

其實這不是問題,因爲沒有這條線,我得到了另一個錯誤「cURL錯誤60:SSL證書問題:無法獲得本地發行者證書」,並且嘖嘖說常見問題說這條線需要在那裏。 – LoveAndHappiness

+1

@LoveAndHappiness查看更新回答:) –

3

你不應該有這樣的電話:

$client->get('/', ['verify' => true]); 

這就是拋出錯誤。第三行是好的。

錯誤的含義是什麼。該網址格式不正確。在我的初始化客戶端的情況下,我用 base_url而不是 base_uri。所以,如果你遇到這個錯誤,請確保你的網址被正確指定。

+0

第2行的問題是什麼,爲什麼OP沒有它? –

+1

在第一行初始化guzzle客戶端時,他沒有傳入url。 因此,在第二行中,當他使用'/'時,沒有基址,並且必然會拋出錯誤[格式不正確的URL] – Teliov