我在想,是否有一种简单的方法来执行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