From 91ba39da6c1f76636888d0e9f0799841ffef873c Mon Sep 17 00:00:00 2001 From: xiangZhi Date: Sun, 23 Jan 2022 22:55:53 +0800 Subject: [PATCH] =?UTF-8?q?ClientHttp=E6=95=B4=E5=90=88=EF=BC=8C=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HeaderHttpClientRequestFilter.java | 13 +++++ .../HeaderHttpClientResponseFilter.java | 11 ++++ .../clientFilter/HttpClientRequestFilter.java | 10 ++++ .../HttpClientResponseFilter.java | 9 +++ .../gateway/clientHttp/HttpClientTest2.java | 58 +++++++++++++++++++ 5 files changed, 101 insertions(+) create mode 100644 02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientRequestFilter.java create mode 100644 02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientResponseFilter.java create mode 100644 02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientRequestFilter.java create mode 100644 02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientResponseFilter.java create mode 100644 02nio/nio02/src/main/java/io/github/kimmking/gateway/clientHttp/HttpClientTest2.java diff --git a/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientRequestFilter.java b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientRequestFilter.java new file mode 100644 index 00000000..d3be6167 --- /dev/null +++ b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientRequestFilter.java @@ -0,0 +1,13 @@ +package io.github.kimmking.gateway.clientFilter; + +import io.github.kimmking.gateway.filter.HttpRequestFilter; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.FullHttpRequest; + +public class HeaderHttpClientRequestFilter implements HttpRequestFilter { + + @Override + public void filter(FullHttpRequest fullRequest, ChannelHandlerContext ctx) { + fullRequest.headers().set("testClient", "testClient"); + } +} diff --git a/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientResponseFilter.java b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientResponseFilter.java new file mode 100644 index 00000000..271cb727 --- /dev/null +++ b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HeaderHttpClientResponseFilter.java @@ -0,0 +1,11 @@ +package io.github.kimmking.gateway.clientFilter; + +import io.github.kimmking.gateway.filter.HttpResponseFilter; +import io.netty.handler.codec.http.FullHttpResponse; + +public class HeaderHttpClientResponseFilter implements HttpResponseFilter { + @Override + public void filter(FullHttpResponse response) { + response.headers().set("test", "test-nio"); + } +} diff --git a/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientRequestFilter.java b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientRequestFilter.java new file mode 100644 index 00000000..e35e0960 --- /dev/null +++ b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientRequestFilter.java @@ -0,0 +1,10 @@ +package io.github.kimmking.gateway.clientFilter; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.FullHttpRequest; + +public interface HttpClientRequestFilter { + + void filter(FullHttpRequest fullRequest, ChannelHandlerContext ctx); + +} diff --git a/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientResponseFilter.java b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientResponseFilter.java new file mode 100644 index 00000000..b9f12374 --- /dev/null +++ b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientFilter/HttpClientResponseFilter.java @@ -0,0 +1,9 @@ +package io.github.kimmking.gateway.clientFilter; + +import io.netty.handler.codec.http.FullHttpResponse; + +public interface HttpClientResponseFilter { + + void filter(FullHttpResponse response); + +} diff --git a/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientHttp/HttpClientTest2.java b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientHttp/HttpClientTest2.java new file mode 100644 index 00000000..e4277f85 --- /dev/null +++ b/02nio/nio02/src/main/java/io/github/kimmking/gateway/clientHttp/HttpClientTest2.java @@ -0,0 +1,58 @@ +package io.github.kimmking.gateway.clientHttp; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; +import java.net.URI; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.DefaultHttpClient; + +public class HttpClientTest2 { + public static void main(String[] args) throws ClientProtocolException, IOException { + String url = "http://localhost:8801"; + get(url); + } + + public static String get(String url) throws ClientProtocolException, IOException { + long startTime=System.currentTimeMillis(); + + HttpClient httpClient = new DefaultHttpClient(); + HttpGet httpGet = new HttpGet(); + httpGet.setURI(URI.create(url)); + HttpResponse response = httpClient.execute(httpGet); + String httpEntityContent = getHttpEntityContent(response); + httpGet.abort(); + + long endTime=System.currentTimeMillis(); + float excTime=(float)(endTime-startTime)/1000; + System.out.println("执行时间为:"+excTime+"s"); + + return httpEntityContent; + } + + private static String getHttpEntityContent(HttpResponse response) throws IOException, UnsupportedEncodingException { + HttpEntity entity = response.getEntity(); + if (entity != null) { + InputStream is = entity.getContent(); + BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); + String line = br.readLine(); + StringBuilder sb = new StringBuilder(); + while (line != null) { + sb.append(line + "\n"); + line = br.readLine(); + } + br.close(); + is.close(); + return sb.toString(); + } + return ""; + } + + +}