我在想,是否有一種簡單的方法來執行REST API GET調用?我一直在閱讀cURL,但這是一個很好的方法嗎?PHP REST客戶端API調用
我也遇到過php://輸入但我不知道如何使用它。有沒有人有我的例子?
我不需要高級API客戶端的東西,我只需要對某個URL執行GET調用即可獲取將由客戶端解析的一些JSON數據。
謝謝!
我在想,是否有一種簡單的方法來執行REST API GET調用?我一直在閱讀cURL,但這是一個很好的方法嗎?PHP REST客戶端API調用
我也遇到過php://輸入但我不知道如何使用它。有沒有人有我的例子?
我不需要高級API客戶端的東西,我只需要對某個URL執行GET調用即可獲取將由客戶端解析的一些JSON數據。
謝謝!
您可以使用file_get_contents
如果fopen封裝被啓用。請參閱:http://php.net/manual/en/function.file-get-contents.php
如果它們不是,並且您無法修復,因爲您的主機不允許它,cURL
是一個很好的使用方法。
有多種方式,使REST客戶端API調用:
捲曲去最簡單的和好方式。下面是一個簡單的通話
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, POST DATA);
$result = curl_exec($ch);
print_r($result);
curl_close($ch);
這是一個「PHP HTTP客戶端,可以很容易地與HTTP/1.1工作,並採取了痛了耗費網絡服務「。使用Guzzle比使用cURL更容易。
下面是從網站的例子:
$client = new GuzzleHttp\Client();
$res = $client->get('https://api.github.com/user', [
'auth' => ['user', 'pass']
]);
echo $res->getStatusCode(); // 200
echo $res->getHeader('content-type'); // 'application/json; charset=utf8'
echo $res->getBody(); // {"type":"User"...'
var_export($res->json()); // Outputs the JSON decoded data
如果你有一個網址,你的PHP支持它,你可以只打電話的file_get_contents:
$response = file_get_contents('http://example.com/path/to/api/call?param1=5');
如果$響應是JSON,使用json_decode把它變成PHP數組:
$response = json_decode($response);
如果您正在使用的Symfony還有,即使包括所有〜100點的異常,並引發他們,而不是返回一個偉大的休息客戶端包一些無意義的錯誤代碼+消息。
try {
$restClient = new RestClient();
$response = $restClient->get('http://www.someUrl.com');
$statusCode = $response->getStatusCode();
$content = $response->getContent();
} catch(OperationTimedOutException $e) {
// do something
}
Httpful是一個簡單的,可鏈接的,可讀PHP旨在使發言HTTP理智庫。它讓開發人員專注於與API交互,而不是通過捲曲set_opt頁面進行篩選,並且是理想的PHP REST客戶端。
Httpful包括...
Ex。
發送GET請求。獲取自動解析的JSON響應。
庫在響應中通知JSON內容類型並自動將響應分析爲本機PHP對象。
$uri = "https://www.googleapis.com/freebase/v1/mqlread?query=%7B%22type%22:%22/music/artist%22%2C%22name%22:%22The%20Dead%20Weather%22%2C%22album%22:%5B%5D%7D";
$response = \Httpful\Request::get($uri)->send();
echo 'The Dead Weather has ' . count($response->body->result->album) . " albums.\n";
您更喜歡哪種方法,以及爲什麼:cURL或file_get_contents? – EsTeGe
'file_get_contents'通常比較容易,但只能處理'GET'。這對你的情況似乎已經足夠了。我會嘗試,如果你是1.確定你的服務器可以處理它,以及2.你確定以後不需要'POST' – Nanne
file_get_contents似乎是這個用例最簡單的。 – EsTeGe