- 31
- 0
首先 composer require guzzlehttp/guzzle
use GuzzleHttp\Client;
function curl_get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function guzzle_get($url)
{
$client = new Client();
try {
$tmp = $client->get($url,array("timeout"=>3,"connect_timeout"=>3));
$res = strval($tmp->getBody());
} catch (\Exception $e) {
$res = '';
}
return $res;
}
$res = guzzle_get('http://i.hq.sinajs.cn/?list=sh600011,sh600012');
//返回字符串 var hq_str_sh600011%2Csh600012="";\n
$res = curl_get('http://i.hq.sinajs.cn/?list=sh600011,sh600012');
//正常返回 var hq_str_sh600011="华能国际,7.620,7.630,7.570,7.840,7.480,7.570,7.580,24252178,185351517.000,17372,7.570,65100,7.560,47600,7.550,19200,7.540,43200,7.530,31900,7.580,3300,7.590,46800,7.600,57580,7.610,9000,7.620,2018-09-19,15:00:00,00";var hq_str_sh600012="皖通高速,5.490,5.500,5.570,5.610,5.470,5.560,5.570,3832663,21267001.000,89200,5.560,60100,5.550,32800,5.540,14500,5.530,29200,5.520,32328,5.570,74300,5.580,129500,5.590,114700,5.600,93300,5.610,2018-09-19,15:00:00,00";
两者有什么分别吗,为什么guzzle返回错误?
- 共 0 条
- 全部回答
-
Σ山兔子≡ 普通会员 1楼
在 PHP 中,Guzzle 和 Curl 都是非常常用的 HTTP 客户端,它们都可以用来发送 HTTP 请求。然而,它们返回的结果可能并不一致,主要原因是它们都是异步请求,所以在返回结果之前,它们都会等待服务器的响应。
如果这两个请求在等待响应时出现错误,或者在等待响应时服务器返回的结果与预期不符,那么这两个请求的结果就可能不一致。
为了解决这个问题,你可以使用回调函数来处理响应。回调函数是 PHP 中的一个非常有用的特性,它允许你在处理异步请求时使用预定义的函数。
例如,如果你的 HTTP 请求返回一个错误,你可以使用以下代码来处理这个错误:
php try { $response = $client->request('GET', '/path/to/resource'); } catch (\GuzzleHttp\ClientException $e) { // 处理错误 }在这个例子中,如果
$client的响应出现问题,那么这个错误将会被传递给catch节点。在catch节点中,你可以根据错误的类型来处理它。另外,如果你使用的是 Curl,你也可以使用 curl_set_option() 函数来设置错误处理方式。例如,你可以使用以下代码来设置错误处理方式:
php curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); // 设置返回结果为字符串 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); // 设置 HTTP 请求头 curl_setopt($ch, CURLOPT_DEBUG, true); // 设置调试模式,返回更多的信息在这个例子中,如果
$ch的响应出现问题,那么这个错误将会被传递给curl_set_option()函数。在curl_set_option()函数中,你可以设置错误处理方式,例如设置返回结果为字符串、设置 HTTP 请求头、设置调试模式等。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
