laravel5 http如何请求另外一个api server

laravel5后端有什么好的方式http请求另外一个http server获取response信息呢?

$request = Request::create('http://xxx', 'GET');

这种内置的方法好像获取不到response信息。

阅读 19.7k
4 个回答

我比较喜欢用php-curl-class这个包

phpuse \Curl\Curl;

$curl = new Curl();
$curl->get('http://www.example.com/');


$curl = new Curl();
$curl->setBasicAuthentication('username', 'password');
$curl->setUserAgent('');
$curl->setReferrer('');
$curl->setHeader('X-Requested-With', 'XMLHttpRequest');
$curl->setCookie('key', 'value');
$curl->get('http://www.example.com/');

if ($curl->error) {
    echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage;
}
else {
    echo $curl->response;
}

var_dump($curl->requestHeaders);
var_dump($curl->responseHeaders);

https://github.com/php-curl-class/php-curl-class

创建请求不代表发送请求,简单的办法是curl,已经足够强大。如果想用封装好的包,你可以看下guzzle/guzzle这个HTTP客户端,laravel中应该已经引入了。

laravel 自带 GuzzleHttp\Client 包,可以用作post,get等http请求;

use GuzzleHttp\Client;

$http = new Client();
$url = 'http://www.baidu.com';
$response = $http->get($url);
$data = json_decode((string)$response->getBody(), true);

具体请查看GuzzleHttp官方文档

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题