Skip to content

Commit 0755eb8

Browse files
committed
week3-step3
将前端请求头+nio-myname添加到发往backendpoint的请求头中
1 parent 6dd1159 commit 0755eb8

3 files changed

Lines changed: 23 additions & 1 deletion

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.kimmking.gateway.filter;
2+
3+
import io.netty.channel.ChannelHandlerContext;
4+
import io.netty.handler.codec.http.*;
5+
6+
public class AddNameToRequestHeaderFilter implements HttpRequestFilter {
7+
8+
@Override
9+
public void filter(FullHttpRequest fullRequest, ChannelHandlerContext ctx) {
10+
HttpHeaders headers = fullRequest.headers();
11+
headers.add("nio", "soda");
12+
}
13+
}

02nio/nio02/src/main/java/io/github/kimmking/gateway/inbound/HttpInboundHandler.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.github.kimmking.gateway.inbound;
22

3+
import io.github.kimmking.gateway.filter.AddNameToRequestHeaderFilter;
4+
import io.github.kimmking.gateway.filter.HttpRequestFilter;
35
import io.github.kimmking.gateway.outbound.httpclient4.HttpOutboundHandler;
46
import io.netty.channel.ChannelHandlerContext;
57
import io.netty.channel.ChannelInboundHandlerAdapter;
@@ -13,10 +15,12 @@ public class HttpInboundHandler extends ChannelInboundHandlerAdapter {
1315
private static Logger logger = LoggerFactory.getLogger(HttpInboundHandler.class);
1416
private final String proxyServer;
1517
private HttpOutboundHandler handler;
18+
private HttpRequestFilter filter;
1619

1720
public HttpInboundHandler(String proxyServer) {
1821
this.proxyServer = proxyServer;
1922
handler = new HttpOutboundHandler(this.proxyServer);
23+
filter = new AddNameToRequestHeaderFilter();
2024
}
2125

2226
@Override
@@ -34,7 +38,8 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
3438
// if (uri.contains("/test")) {
3539
// handlerTest(fullRequest, ctx);
3640
// }
37-
41+
42+
filter.filter(fullRequest, ctx);
3843
handler.handle(fullRequest, ctx);
3944

4045
} catch(Exception e) {

02nio/nio02/src/main/java/io/github/kimmking/gateway/outbound/httpclient4/HttpOutboundHandler.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.apache.http.protocol.HTTP;
1818
import org.apache.http.util.EntityUtils;
1919

20+
import java.util.Map;
2021
import java.util.concurrent.*;
2122

2223
import static io.netty.handler.codec.http.HttpResponseStatus.NO_CONTENT;
@@ -62,6 +63,9 @@ public void handle(final FullHttpRequest fullRequest, final ChannelHandlerContex
6263
private void fetchGet(final FullHttpRequest inbound, final ChannelHandlerContext ctx, final String url) {
6364
final HttpGet httpGet = new HttpGet(url);
6465
//httpGet.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
66+
for (Map.Entry<String, String> header : inbound.headers()) {
67+
httpGet.setHeader(header.getKey(), header.getValue());
68+
}
6569
httpGet.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
6670
httpclient.execute(httpGet, new FutureCallback<HttpResponse>() {
6771
@Override

0 commit comments

Comments
 (0)