当前位置: 首页 > 后端技术 > PHP

Guzzle_PHP的HTTP客户端

时间:2023-03-29 21:10:23 PHP

Guzzle是一个PHP的HTTP客户端,用来方便的发送请求,集成到我们的WEB服务中。接口简单:构建查询语句、POST请求、拆分上传下载大文件、使用HTTPcookie、上传JSON数据等。同步和异步请求使用相同的接口。使用PSR-7接口请求、响应和流式传输,允许您使用其他兼容的PSR-7库与Guzzle共同开发。抽象底层HTTP传输,允许您更改环境和其他代码,例如:不严重依赖cURL和PHP流或套接字,非阻塞事件循环。中间件系统允许您创建组成客户端的行为。文档参考地址:https://guzzle-cn.readthedocs...用composer下载后目录结构如下:简单代码示例:'http://ip.taobao.com/service/getIpInfo.php','timeout'=>3.0]);$response=$client->request('GET','http://ip.taobao.com/service/getIpInfo.php',['query'=>['ip'=>'202.108.31.224']]);$body=$response->getBody();$remainingBytes=$body->getContents();echo$remainingBytes;如果报错如下:Fatalerror:UncaughtGuzzleHttp\Exception\RequestException:cURLerror60:SSLcertificateproblem:unabletogetlocalissuercertificate(seehttps://curl.haxx.se/libcurl/...inxxx.php原因是本地CURLSSL证书太旧,所以无法识别这个证书。解决方法如下:从http://curl.haxx.se/ca/cacert...下载一个最新的证书。然后保存到任意目录。以Debian9.X为例,我将证书文件保存到/etc/ssl/certs/cacert.pem,然后编辑php.ini,找到curl.cainfo,去掉curl.cainfo前面的注释“;”,然后写上cacert.pem证书的完整路径和文件名,我的是这样的:curl.cainfo="/etc/ssl/certs/cacert.pem"1curl.cainfo="/etc/ssl/certs/cacert.pem"重启PHP服务,问题解决。(参考https://www.quyu.net/info/170...)