okhttp 通过网关请求服务端返回数据
1、启动类代码
- package com.tycoon.service;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
- import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
- /**
- * Title: ServerConsume1Application
- * Description: 服务启动类
- *
- * @author tycoon
- * @version 1.0.0
- * @date 2019-02-26 10:10
- */
- @EnableDiscoveryClient
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
- public class ServerApplication {
- public static void main(String[] args) {
- SpringApplication.run(ServerApplication.class, args);
- }
- }
2、 application.xml文件
- spring:
- application:
- name: client-request
- server:
- port: 7777 #访问项目端口
- servlet:
- context-path: / #访问项目名称
- tomcat:
- uri-encoding: UTF-8
- logging:
- level:
- root: INFO
- org.springframework.cloud.sleuth: DEBUG
- main:
- allow-bean-definition-overriding: true
- cloud:
- consul:
- discovery:
- instance-id: ${spring.application.name}:${server.port}
- prefer-ip-address: true
- health-check-interval: 10s #心跳检查时间间隔
- hostname: ${spring.application.name}
- service-name: ${spring.application.name}
- enabled: true
- health-check-path: /health #心跳检查
- host: 127.0.0.1
- port: 8500
3、 测试类代码
- package com.tycoon.service;
- import org.apache.http.HttpEntity;
- import org.apache.http.client.methods.CloseableHttpResponse;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.CloseableHttpClient;
- import org.apache.http.impl.client.HttpClientBuilder;
- import org.apache.http.util.EntityUtils;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.junit4.SpringRunner;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- /**
- * Title: ServiceDemoApplicationTests
- * Description: 服务启动类
- *
- * @author tycoon
- * @version 1.0.0
- * @date 2019-02-26 10:10
- */
- @RunWith(SpringRunner.class)
- @SpringBootTest
- public class ServiceDemoApplicationTests {
- @Test
- public void doGetTestOne() {
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
- String date = df.format(new Date());// new Date()为获取当前系统时间,也可使用当前时间戳
- System.out.println(date);
- // 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
- CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 说明service-provider 为服务提供者,card为服务controller接口,cardId=123456 说的 传入参数- String strUrl = "http://localhost:9992/api/service-provider/card?cardId=123456&accessToken=1222";
- // 创建Get请求
- HttpGet httpGet = new HttpGet(strUrl);
- // 响应模型
- CloseableHttpResponse response = null;
- try {
- // 由客户端执行(发送)Get请求
- response = httpClient.execute(httpGet);
- // 从响应模型中获取响应实体
- HttpEntity responseEntity = response.getEntity();
- String date1 = df.format(new Date());
- System.out.println("响应状态为:" + response.getStatusLine()+" ,当前时间:"+date1);
- System.out.println();
- if (responseEntity != null) {
- System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- // 释放资源
- if (httpClient != null) {
- httpClient.close();
- }
- if (response != null) {
- response.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
4、pom.xml文件
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <packaging>pom</packaging>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.0.4.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository northeasttycoon -->
- </parent>
- <groupId>com.tycoon</groupId>
- <artifactId>client-request</artifactId>
- <version>1.0.0</version>
- <properties>
- <java.version>1.8</java.version>
- <spring-cloud.version>Finchley.M7</spring-cloud.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-autoconfigure</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-commons</artifactId>
- <version>2.0.0.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>5.0.7.RELEASE</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-openfeign-core</artifactId>
- <version>2.0.0.RELEASE</version>
- </dependency>
- </dependencies>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>${spring-cloud.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.1.15</version>
- </dependency>
- <dependency>
- <groupId>com.squareup.okttp</groupId>
- <artifactId>okhttp</artifactId>
- <version>2.7.5</version>
- </dependency>
- <!--<dependency>-->
- <!--<groupId>com.ning</groupId>-->
- <!--<artifactId>asy-http-client</artifactId>-->
- <!--<version>1.9.31</version>-->
- <!--</dependency>-->
- </dependencies>
- </dependencyManagement>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- <repositories>
- <repository>
- <id>spring-milestones</id>
- <name>Spring Milestones</name>
- <url>https://repo.spring.io/milestone</url>
- </repository>
- </repositories>
- </project>
5、 运行后结果为:
okhttp 通过网关请求服务端返回数据的更多相关文章
- 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据
这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...
- ajax跨域POST时执行OPTIONS请求服务端返回403forbidden的解决方法
ajax访问服务端restful api时,由于contentType类型的原因,浏览器会先发送OPTIONS请求. 本人服务端用的是spring mvc框架,web服务器用的是tomcat的,以下给 ...
- 使用Fiddler伪造服务端返回数据,绕过软件试用期验证
用过一款和visual studio集成非常好的移动端模拟器,有7天的试用期,可惜不支持国内支付,试用到期了怎么办,不想重装系统. 昨天看有人破解admin page,于是尝试自己动手试试,因为这款模 ...
- 【教程】【FLEX】#002 请求服务端数据(UrlLoader)
为什么Flex需要请求服务端读取数据,而不是自己读取? Flex 是一门界面语言,主要是做界面展示的,它能实现很多绚丽的效果,这个是传统Web项目部能比的. 但是它对数据库和文件的读写 没有良好的支持 ...
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
补充:关于PHP服务端可能出现的问题: 如果你刚好也像我一样,用php实现的服务端程序,采用的是apache服务器,那么虚拟主机的配置可能会影响到android应用的调试!! 在android应用中访 ...
- android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据
主要是基于HTTP协议与服务端进行交互. 涉及到的类和接口有:URL.HttpURLConnection.HttpClient等 URL: 使用一个String类型的url构造一个URL对象,如: U ...
- fastjson解析服务端返回的数据
1.配置依赖 //fastjson api 'com.alibaba:fastjson:1.2.44' 2.设计服务端返回的数据 {},{},{}]} 3.编写bean类,特别注意,要和服务端返回的类 ...
- js插件---WebUploader 如何接收服务端返回的数据
js插件---WebUploader 如何接收服务端返回的数据 一.总结 一句话总结: uploadSuccess有两个参数,一个是file(上传的文件信息),一个是response(服务器返回的信息 ...
- ionic3使用@angular/http 访问nodejs(koa2框架)服务不能返回数据
cordova的http插件不能使用在browser上,所以当需要在browser上浏览时,需要使用@angular/http 里的方法来访问nodejs服务. 如果出现服务端能够接收请求并相应,而客 ...
随机推荐
- Yii2 使用十二 配合ajaxFileUpload 上传文件
1.js $("input#upload").change(function () { $.ajaxFileUpload({ url: '/members/web-members- ...
- 【Hadoop】HDFS客户端开发示例
1.原理.步骤 2.HDFS客户端示例代码 package com.ares.hadoop.hdfs; import java.io.FileInputStream; import java.io.F ...
- 初识Kafka:构架、生产消费模型以及其他相关概念
当前使用的事件总线采用的是Kafka分布式消息队列来完成的,近来项目需要接入到事件总线中,故开启了kafka的学习之旅(之前一直在听说kafka这玩意儿,但是学习计划中还没有将它安排进去,借着这个机会 ...
- 常见BUG问题汇总[待更新]
1.字符串数据库长度问题,特别是与java接口对接的过程中要注意 2.存储数据库之前所有的数据都需要在存储前进行验证
- 使用 curl() 函数实现不同站点之间注册用户的同步
一 需求 在A站点注册一个新用户,那么,在B站点也会被同时注册 二 思路 在A站点注册的同时,调用API接口实现在B站点也会被同时注册 三 实现 主要代码如下: function http_curl( ...
- Selenium2 Python 自己主动化測试实战学习笔记(五)
7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...
- Redis 配置文件及命令详解
==基本配置 daemonize no 是否以后台进程启动 databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足 ...
- C语言学习笔记(五) 数组
数组 数组的出现就是为了解决大量同类型数据的存储和使用的问题: 数组的分类:一维数组.二维数组. 一维数组:为多个变量连续分配存储控件:所有的变量的数据类型必须相同:所有变量所占的字节大小必须相等: ...
- WebApi异常处理解决方案
一.使用异常筛选器捕获所有异常 首先在App_Start里面新建一个类WebApiExceptionFilterAttribute.cs,继承ExceptionFilterAttribute,重写On ...
- Java平台调用.net开发的WebService报错处理
1.报错:服务器未能识别 HTTP 头 SOAPAction 的值 : 解决办法:.net 开发的WebService文件中(.asmx)增加属性: [SoapDocumentService(Rout ...