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

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

引入安装

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

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

"guzzlehttp/guzzle": "^6.3",

然后命令行执行composer install

在项目中的具体用法:

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

<?php
namespaceApp\Http\Services;

classAPIHelper
{

publicfunctionpost($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;
}

publicfunctionget($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,不验证证书。

publicstaticfunctionpost_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中使用

publicfunctionindex(Request$request)
{
$data=$request->json()->all();
$body=$data;
$apiStr='/api/xxx/list';
$api=newAPIHelper();
$res=$api->post($body,$apiStr);
$data=json_decode($res);
$ret=newRetObject();
$ret->retCode='0000';
$ret->retMsg='Success';
$ret->data=$data;
returnresponse()->json($ret);
}

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

发布于 2021-03-24 01:22:39
收藏
分享
海报
0 条评论
177
上一篇:Session与Cookie怎么在Yii框架中使用 下一篇:怎么在vue中利用showdown实现代码区域高亮
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码