加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

将cURL请求转换为Guzzle

发布时间:2020-12-14 02:07:42 所属栏目:Linux 来源:网络整理
导读:我试图使用Guzzle而不是直接使用cURL来实现和HTTP请求.如何使用Guzzle进行相同类型的请求?或者我应该坚持使用cURL? $ch = curl_init();// Set the URLcurl_setopt($ch,CURLOPT_URL,$url);// don't verify SSL certificatecurl_setopt($ch,CURLOPT_SSL_VERI
我试图使用Guzzle而不是直接使用cURL来实现和HTTP请求.如何使用Guzzle进行相同类型的请求?或者我应该坚持使用cURL?

$ch = curl_init();
// Set the URL
curl_setopt($ch,CURLOPT_URL,$url);
// don't verify SSL certificate
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
// Return the contents of the response as a string
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
// Follow redirects
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
// Set up authentication
curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
curl_setopt($ch,CURLOPT_USERPWD,"$token:X");

这是我有的方法.我一直遇到401 Unauthorized错误.我知道我有正确的证件.让我觉得我没有走上正轨的原因是Guzzle文档说明:当前只在使用cURL处理程序时支持auth,但是计划创建可以与任何HTTP处理程序一起使用的替换.但根据我的理解,Guzzle默认使用cURL.

$guzzleData = [
  'auth' => [$token,'X'],'allow_redirects' => true,'verify' => false,];

$client = new GuzzleHttpClient();
$request = $client->get($url,$guzzleData);
$response = $request->send();

解决方法

这是解决方案:

$client = new GuzzleHttpClient();
$request = $client->get($url);

$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST,false);
$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER,false);
$request->getCurlOptions()->set(CURLOPT_RETURNTRANSFER,true);
$request->getCurlOptions()->set(CURLOPT_FOLLOWLOCATION,true);
$request->getCurlOptions()->set(CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
$request->getCurlOptions()->set(CURLOPT_USERPWD,"$token:X");

$response = $request->send();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读