第一种方法:使用HttpRequest第三方工具


第一步:pom依赖

<dependency><groupId>com.github.kevinsawicki</groupId><artifactId>http-request</artifactId><version>6.0</version>
</dependency>

第二步:在代码中直接使用HttpRequest类

String body = HttpRequest.post(new StringBuilder(GuojiaoInfo.guojiaoHttp).append("facsp/auth/AuthLogin")).contentType(MediaType.APPLICATION_JSON_UTF8_VALUE).send(JSON.toJSONString(param)).body();

如果是发post请求,就调用

HttpRequest.post()方法

如果发get请求,就调用

HttpRequest.get()方法。

第二种方法:使用RestTemplate(Spring框架封装)


springcloud中服务间两种restful调用方式

RestTemplate和Feign

RestTemplate是一个Http客户端,

使用RestTemplate的几种方式:

一、RestTemplate template = new RestTemplate();使用服务ip或者域名访问

二、使用LoadBalancerClient的choose()获得ServiceInstance

三、注入RestTemplate bean,使用服务名称访问

第三种方法:使用HttpClient(Apache提供)


代码示例:

public static int sendToSanMingJSON(String url, String paramJson) throws Exception {int status;CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(SANMING_SERVICE_URL+url);logger.debug("三明服务地址是==> "+SANMING_SERVICE_URL+url);
//        ArrayList<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
//        parameters.add(new BasicNameValuePair("Connection", "keep-alive"));
//        parameters.add(new BasicNameValuePair("Content-Type", "application/json"));
//        parameters.add(new BasicNameValuePair("Accept-Encoding", "gzip"));
//        parameters.add(new BasicNameValuePair("Accept-Charset", "utf-8"));
//        parameters.add(new BasicNameValuePair("Accept", "*/*"));httpPost.setHeader("Connection","keep-alive");httpPost.setHeader("Content-Type","application/json");httpPost.setHeader("Accept-Encoding","gzip");httpPost.setHeader("Accept-Charset","utf-8");StringEntity requestEntity = new StringEntity(paramJson,"utf-8");requestEntity.setContentEncoding("UTF-8");httpPost.setEntity(requestEntity);String jsonData=null;try {
//            httpPost.setEntity(new UrlEncodedFormEntity(parameters));CloseableHttpResponse response = httpClient.execute(httpPost);jsonData = EntityUtils.toString(response.getEntity(), Charset.forName("utf-8"));} catch (Exception e) {logger.info("调三明服务异常 ==> "+e.getMessage());}Map map = JSON.parseObject(jsonData);status = Integer.parseInt(map.get("code").toString());return status;}

解决服务间调用的三种传统方式相关推荐

  1. Tomcat介绍及三种启动方式的区别

    一.Tomcat的下载 二.Tomcat目录说明 三.Tomcat常用命令 四.Tomcat服务的安装 五.Tomcat启动的三种方式 六.三种启动方式的区别 七.Tomcat端口占用问题 一.Tom ...

  2. spring-Cloud-netflix-快速入门(三)-服务间调用

    目录 环境准备 服务结构 基于(Eureka)服务注册中心的服务间调用 RestTemplate OpenFeign pom依赖 新建客户端类 消费者通过客户端类调用生产者接口 环境准备 使用上一篇的 ...

  3. 怎么看调用的接口_SpringCloud服务间调用

    本篇简介 在上一篇我们介绍了SpringCloud中的注册中心组件Eureka.Eureka的作用是做服务注册与发现的,目的是让不同的服务与服务之间都可以通过注册中心进行间接关联,并且可以通过注册中心 ...

  4. 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配!

    在微服务项目中,如果我们想实现服务间调用,一般会选择Feign.之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能 ...

  5. Spring Cloud微服务之Feign——声明式服务间调用

    目录 写在前面 服务间调用常见的方案 方案一:HttpClient 方案二:RestTemplate 方案三:Feign 框架版本问题及可能遇到的坑 搭建服务注册中心 搭建服务1--service-a ...

  6. 线程间通信的三种方法 (转)

    http://www.cnblogs.com/puxidun/archive/2009/12/06/1618142.html 线程间通信的三种方法 多线程通信的方法主要有以下三种:  1.全局变量 进 ...

  7. 服务间调用要通过网关吗_Asp.Net Boilerplate微服务实战(二)架构解析

    这一章节,我来介绍一下Asp.Net Boilerplate框架在微服务开发中所用到的技术及其大体的组织架构.由于本系列仅讨论ABP框架在微服务架构下的应用方案,不涉及具体的业务逻辑,所以在文中,不讨 ...

  8. linux设置开机自启服务,linux设置服务开机自启动的三种方式

    linux设置服务开机自启动的三种方式 这里介绍一下linux开机自动启动的几种方法,共计3种,大家可以借鉴一下!经验里面以centos 5.3系统为例! 方法1:.利用ntsysv命令进行设置,利用 ...

  9. vbs执行ctrl+空格_VBS中解决路径带空格的三种方法

    vbs中,如果需要运行的程序中带有空格,按照通常的方式往往会提示错误,其实有两种形式不同的解决方法: 在应用程序前后分别加三个双引号,代码如下: Set wshell=CreateObject(&qu ...

最新文章

  1. 2022-2028年中国康养地产行业市场需求前景及投资战略分析报告
  2. 在VMWare中配置SQLServer2005集群 Step by Step(四)——集群安装
  3. python数据文件读写
  4. Zynq7000术语PL,PS,APU,SCU介绍
  5. Java必刷100题
  6. 利用Jquery处理跨域请求
  7. c语言 文件游程统计,游程 码表 如何形成
  8. 资源丨2200万室内场景数据集,包含语义、全景、灯光等十余种效果
  9. 【转】 TechED2010与我(三) —— 初识云计算
  10. AD9如何设置原点位置
  11. 给我一个支点,我要撬动地球。
  12. 桌面版docker安装搭建
  13. BIP与Siebel系统集成
  14. gis环境设置在哪_怎样解决GIS长距离母线筒的位移问题?
  15. 全局函数声明和静态函数声明
  16. C++程序设计同步实践宝典——前言
  17. android imageview stretchblt,想知道Bmp图像的缩小放大用Tcanvas.StretchDraw还是用StretchBlt函数?(50分)...
  18. 老股民箱底翻出发黄纸质股票 如今价值超过20万
  19. 成都榆熙:商家怎样提升店铺自然流量?
  20. faker假数据php,Yii2 使用 faker 生成假数据

热门文章

  1. BERT源码分析(PART III)
  2. 爱可可推荐!关于竞赛思路,方法和代码实践,数据竞赛Baseline开源分享!
  3. 报告分析|2021移动社交行业有哪些新风向?
  4. 网易智慧企业 Node.js 实践(3)| 灰度环境和应用监控
  5. 移动IM开发指南2:心跳指令详解
  6. 项望烽:移动 IM 开发之心跳​
  7. LeetCode.每日一题今日份_392.判断子序列
  8. 网红咖啡店的最后一晚:五道口的罗曼蒂克如何消亡
  9. 电动垂直起降飞机已经完成测试,就差一张飞行执照即可合法升空
  10. 百度地图的实现,IIS6.0,.net4.0 无法使用POST和GET