公司的一个微服务系统想访问另一个系统,另一个系统是用的ecstore框架基础上做的二次开发,由于之前外部接口都是用openapi实现的,但是考虑到我们这个系统是内部使用,不想搞这么麻烦,所以就想用另一种方式实现。

1,新增api.xml

所有ECSTORE系统提供的API都需要在api.xml中进行注册,才可以被外部系统调用
api.xml中只进行API接口注册,不提供openapi接口注册,openapi还是和旧版本一样在services.xml中进行注册 
修改api.xml后 cmd update 更新api.xml中注册的API接口,(也可以登录后台应用中心-手动更新)

2,创建被调用类和方法

注意文件类的名称和api.xml的配置一样

3,另一台服务器测试调用

需要用到的方法

//生成签名
public function sign($params, $token) {return strtoupper(md5(strtoupper(md5($this->assemble($params))).$token));
}//拼接参数
public function assemble($params) {if(!is_array($params))  return null;ksort($params, SORT_STRING);$sign = '';foreach($params AS $key=>$val){if(is_null($val))   continue;if(is_bool($val))   $val = ($val) ? 1 : 0;$sign .= $key . (is_array($val) ? $this->assemble($val) : $val);}return $sign;
}//curl请求public function docurl($url,$post='',$cookie='', $returnCookie=0){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($curl, CURLOPT_AUTOREFERER, 1);curl_setopt($curl, CURLOPT_REFERER, "http://www.baidu.com");if($post) {curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));}if($cookie) {curl_setopt($curl, CURLOPT_COOKIE, $cookie);}curl_setopt($curl, CURLOPT_HEADER, $returnCookie);curl_setopt($curl, CURLOPT_TIMEOUT, 10);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$data = curl_exec($curl);if (curl_errno($curl)) {return curl_error($curl);}curl_close($curl);if($returnCookie){list($header, $body) = explode("\r\n\r\n", $data, 2);preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);$info['cookie']  = substr($matches[1][0], 1);$info['content'] = $body;return $info;}else{return $data;}}

开始测试调用

Ecstore可被访问外部接口的详细配置方式相关推荐

  1. Vite内网ip访问,两种配置方式

    问题 使用vite运行项目的时候,控制台会只出现127.0.0.1(localhost)本地地址访问项目.不可以通过公司内网ip访问,其他团队成员无法访问,这是因为没有将服务暴露在局域网中: 两种解决 ...

  2. Gateway路由的配置方式

    路由的配置方式 基础路由配置方式 基于代码的路由配置方式 和注册中心相结合的路由配置方式 路由是网关配置的基本组成模块,和Zuul的路由配置模块类似.一个Route模块由一个 ID,一个目标 URI, ...

  3. 电脑同时访问外网和内网?双路由的详细配置及讲解

    电脑同时上外网和内网?双路由的详细配置讲解 一.准备工作 1.要有两张网卡 电脑要有两张网卡. 一般笔记本电脑都有有线网卡和无线网卡:当然外置接usb的有线/无线网卡也是可以的.有些台式机可能会只有1 ...

  4. Nginx负载均衡的详细配置及使用案例

    Nginx负载均衡的详细配置及使用案例详解 感谢看过这一些列博文和评论的小伙伴, 我把自己所看到的学到的拿到这里来分享是想和大家一起学习进步, 想听听园友给出的意见, 也是对自己学习过程的一个总结.  ...

  5. [转载]java日志框架log4j详细配置及与slf4j联合使用教程

    一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到"build path" 1 2 3 4 5 &l ...

  6. SSM整合Shiro进行登陆认证和授权详细配置

    本篇博客将进行详细介绍Shiro+Spring+SpringMVC+Mybatis+数据库整合并进行登陆认证和授权详细配置. SSM的整合可以参考:https://blog.csdn.net/a745 ...

  7. java日志框架log4j详细配置及与slf4j联合使用教程

    最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到"build path&q ...

  8. Hadoop详细配置

    目录 第1章 概要说明4 1.1 Hadoop是什么?4 1.2 为什么选择CDH版本?4 1.3 集群配置环境4 1.4 网络结构图5 第2章 安装hadoop环境6 2.1 准备安装包6 2.2  ...

  9. (四)RabbitMQ消息队列-服务详细配置与日常监控管理

    (四)RabbitMQ消息队列-服务详细配置与日常监控管理 原文:(四)RabbitMQ消息队列-服务详细配置与日常监控管理 RabbitMQ服务管理 启动服务:rabbitmq-server -de ...

最新文章

  1. BZOJ3246 IOI2013Dreaming
  2. 在网页中插入时间 自动更新
  3. 自动化测试===unittest配套的HTMLTestRunner.py生成html报告源码
  4. java退出不报异常_如何优雅的处理异常(java)?
  5. html5 video修改默认样式,HTML5中将video设置为背景的方法
  6. 前端学习(3278):循环 遍历
  7. javascript window.open
  8. Anaconda不同平台的安装方式
  9. 解决 css 浮动后 父元素高度失效问题
  10. 计算机组成原理白中英考点,唐朔飞版和白中英版《计算机组成原理》考研考点精讲及复习思路...
  11. html文字浮雕效果不起作用,CSS3实现文字浮雕效果,镂刻效果,火焰文字
  12. 如何用邮件群发软件发邮件到对方的信箱里
  13. 知乎视频:联合创作盘活内容价值
  14. AWFWD改进后的融合算法
  15. matlab零序五次谐波,基于MATLAB的高次谐波接地选线保护仿真设计
  16. Shiro 权限管理
  17. CentOS下搭建LAMP
  18. 逻辑电路是现代数字电子计算机的基础,数字逻辑电路基础与计算机系统集成技术...
  19. C语言:十进制转十六进制并组合输出
  20. Construct2 ——— 零基础也能自己做游戏

热门文章

  1. android studio升级到了最新Bumblebee版本,git无法使用
  2. Fluke DSX-CHA804、DSX-CHA004的区别
  3. vue @input和@click的区别
  4. SRS流媒体服务进行视频推送拉取
  5. SpringCloud Alibaba 实战之《负载均衡:Ribbon 如何保证微服务的高可用》
  6. 【女人该看,男人更该看】 两种老公,两种人生
  7. 大数据面试问题2018.01.08常见问题
  8. 应用连接mysql数据库失败_连接MySQL数据库失败频繁的原因
  9. python内置函数callable用法详解
  10. 代码杂记[壹]-将多个Excel信息汇总到一个Excel表格里