温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在Laravel中利用GuzzleHttp调用第三方服务API接口

发布时间:2021-03-23 16:17:59 来源:亿速云 阅读:587 作者:Leah 栏目:开发技术

这篇文章给大家介绍怎么在Laravel中利用GuzzleHttp调用第三方服务API接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

引入安装

在composer.json文件的“require”项中加入

"guzzlehttp/guzzle": "^6.3",

然后命令行执行composer install

在项目中的具体用法:

1、在项目某个地方,我选择的是在app/Http/Services目录下面新建一个APIHelper

<?php namespace App\Http\Services;   class APIHelper {    public function post($body,$apiStr)  {   $client = new \GuzzleHttp\Client(['base_uri' => 'http://192.168.31.XX:xxx/api/']);   $res = $client->request('POST', $apiStr,    ['json' => $body,    'headers' => [     'Content-type'=> 'application/json', //    'Cookie'=> 'XDEBUG_SESSION=PHPSTORM',     "Accept"=>"application/json"]   ]);   $data = $res->getBody()->getContents();     return $data;  }    public function get($apiStr,$header)  {   $client = new \GuzzleHttp\Client(['base_uri' => 'http://192.168.31.XX:xxx/api/']);   $res = $client->request('GET', $apiStr,['headers' => $header]);   $statusCode= $res->getStatusCode();     $header= $res->getHeader('content-type');     $data = $res->getBody();     return $data;  } }

在项目中主要我用的是post方法,

'Cookie'=> 'XDEBUG_SESSION=PHPSTORM',

这一行加进去之后可以使用XDebug进行调试,但是在真正用起来的时候不需要在header里面加这一行了

如果是调用https接口,如果有证书问题,则加入这两项'verify' => '/full/path/to/cert.pem','verify' => false,不验证证书。

 public static function post_user($body,$apiStr)  {     $client = new \GuzzleHttp\Client(['verify' => '/full/path/to/cert.pem','base_uri' => 'http://xxx.xxx.com/api/']);   $res = $client->request('POST', $apiStr,    ['verify' => false,     'json' => $body,     'headers' => [      'Content-type'=> 'application/json']    ]);   $data = $res->getBody()->getContents();     $response=json_decode($data);     return $response;  }

2、具体在Controller中使用

public function index(Request $request)  {   $data = $request->json()->all();   $body = $data;   $apiStr = '/api/xxx/list';   $api = new APIHelper();   $res =$api->post($body,$apiStr);   $data = json_decode($res);   $ret=new RetObject();   $ret->retCode='0000';   $ret->retMsg='Success';   $ret->data=$data;   return response()->json($ret);  }

关于怎么在Laravel中利用GuzzleHttp调用第三方服务API接口就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI