背景:用laravel进行分布式开发,自己写了一个业务系统,还写了一个用户中心和其他的信息中心

现在需要做到前端只需要访问业务系统的API接口也可以获取到其他服务上面的数据

找了很多资料,最后查到了Laravel自带的GuzzleHttp可以达到我的需求

Guzzle中文文档:

http://guzzle-cn.readthedocs.io/zh_CN/latest/index.html

引入安装

在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);}

这样就可以在一个系统里用GuzzleHttp调用第三方的API接口了

Laravel中使用GuzzleHttp调用第三方服务的API接口相关推荐

  1. 22.OpenFeign调用第三方服务

    1.在pom.xml文件中添加OpenFeign的依赖.OpenFeign中集成了ribbion实现负载均衡 <!-- OpenFeign --> <dependency>&l ...

  2. 魔方APP项目-01-移动端开发相关概念、移动端自适配、元信息(meta)、开发准备、移动端项目搭建(模拟器调试)、APICloud(APICloud 前端框架,获取服务端API接口)

    一.移动端开发相关概念 1.APP类型 ①.Native APP Native APP又称原生APP,就是我们平时说的手机应用软件. 原生APP 是针对IOS.Android.Windows等不同的手 ...

  3. 调用JShaman的Web API接口,实现JS代码加密。

    在NodeJS中,调用JShaman的Web API接口,实现JS代码加密. 同样的方法,也可把该功能集成到自己的产品或项目中,让自己也具备JS加密功能. 调用JShaman接口的源码非常简单: /* ...

  4. 调用个人微信的API接口实现微信收发消息

    调用个人微信的API接口实现微信收发消息 /** * 接受微信好友发来聊天消息 * @author wechatno:tangjinjinwx * @param ctx * @param vo */ ...

  5. 迎战2022 - Python中文翻译《环球时报》整篇文章实战演示,调用有道翻译API接口进行英文转中文翻译实例训练

    Python 调用有道翻译 API 接口翻译<环球时报>整篇文章实战演示 第一章:翻译效果展示 ① 翻译文章示例一[得益于中国援助的数字电视,喀麦隆农村社区享受着非洲国家杯] ② 翻译文章 ...

  6. php 调用新浪微博接口,php调用新浪微博短链接api接口地址例子

    短链接我们可以自己生成当然也可以调用第三方的如我们调用新浪微博短链接api接口即可生成自己要的地址了,下面来看一些小编总结的例子. 新浪短网址接口的稳定性和跳转速度还是很给力的,现给出其API说明. ...

  7. Python 调用有道翻译api接口翻译外文网站的整篇西班牙文实战演示

    Python 调用有道翻译 api 接口翻译整篇西班牙文实战演示 第一章:翻译效果展示 ① 翻译文章示例一[阿尔卡拉门的无海摩纳哥:"不到4万欧元,你就不能在这里租任何东西."] ...

  8. 易语言 如何调用麦谈帮API接口?

    .版本 2 .子程序 __启动窗口_创建完毕 '添加并使用<精易模块> Send_API () .子程序 Send_API .局部变量 REQU_Data, 文本型, , , 提交字符串 ...

  9. 调用l2行情数据api接口如何做?

    调用l2行情数据api接口如何做?这个方式用起来比较简单,这种通达信l2行情接口通常是指HTTP接口,也可以说是HTTP API,URL为接口的地址,HTTP方法指的是GET, PUT, DELETE ...

  10. WebService(1) 调用第三方服务

    网上有很多的免费WebService 服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web项目中显示,下面就以查询国内手机号码归属地为例进行说明 进入 ht ...

最新文章

  1. df满足条件的值修改_文科生学 Python 系列 16:泰坦尼克数据 2(缺失值处理)
  2. 使用WatchService监控文件变化
  3. 6.6 rsync:文件同步工具
  4. MongoDB数据库(了解MongoDB及基础命令,备份数据库)
  5. 2021福建计算机会考操作题,2021年福建省信息技术会考笔试试题答案.doc
  6. Linux的实际操作:查询用户id切换用户su -
  7. go ip过滤_用Go实现自己的爬虫
  8. c mysql 插入大量数据_C++操作MySQL大量数据插入效率低下的解决方法
  9. 计算机桌面屏保字幕设置,win7系统屏保设置成字幕保护的操作方法
  10. ppt设置外观样式_ppt如何设置幻灯片的样式
  11. 【seaborn】(五)联合分布图
  12. CSS超详细知识点总结2
  13. ftp服务器下载,细数五款好用的ftp服务器下载软件
  14. 带你Dart带你Diao之类(二)
  15. ATFX:美股持续走高,空头趋势或将终结?
  16. 8大排序算法总结-Python
  17. SAP导入或更新某网证证书
  18. 2022-2027年中国汽油市场规模现状及投资规划建议报告
  19. 海康威视综合安防平台视频摄像头接入Java
  20. 基于Python的Flask框架实现的寻宝通关游戏 课程论文+项目源码

热门文章

  1. 一种设想:打造小程序版本公号和自托管的公号,将你的网站/blog做到微信/微信公号里且与PC端合一
  2. Hadoop的集群搭建windows基于VMware虚拟机超详细教程(一主二从)
  3. 国庆节未休假的你,领到了三倍的工资吗?
  4. Ensembl数据库简介
  5. 计算机网络 8 报文交换和分组交换2
  6. java vo 什么意思_在Java中VO , PO , BO , QO, DAO ,POJO是什么意思
  7. html菜鸟教程之HTML新手如何快速入门及HTML类的概述[图]
  8. C++中set用法详解
  9. java里什么是索引_面试官:什么是索引?
  10. 制造行业mes使用说明书_mes系统操作手册完整版