HttpClient如何打印真实请求地址

在请求负载均衡域名时,我们无法知道请求的是哪一台机器,这是就需要打印出真实的Ip。

public static String doGetRequest(String url){
		log.info("doGetRequest url = " + url);
		CloseableHttpClient httpclient=null;
		CloseableHttpResponse httpResp=null;
		String  result=null;
		HttpGet httpGet = new HttpGet(url.trim());
		httpGet.setConfig(requestConfig);
		try {
			 httpclient = HttpClients.custom()
					.addInterceptorLast(new HttpResponseInterceptor() {
						@Override
						public void process(
								final HttpResponse response,
								final HttpContext context) {
							HttpClientContext clientContext = HttpClientContext.adapt(context);
							ManagedHttpClientConnection connection = clientContext.getConnection(ManagedHttpClientConnection.class);
							// Can be null if the response encloses no content
							if (connection != null) {
								Socket socket = connection.getSocket();
								InetAddress inetAddress = socket.getInetAddress();
								System.out.println("PrintRealIpAddress=============="+inetAddress);
							}

						}
					})
					.build();
			httpResp = httpclient.execute(httpGet);
			System.out.println(httpResp);
			int statusCode = httpResp.getStatusLine().getStatusCode();
			if (statusCode == 200) {
				result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");
			}
		} catch (Exception e) {
			log.error(e.getMessage(),e);
			e.printStackTrace();
		}
		try {
			if (httpResp != null) {
				httpResp.close();
			}
			if (httpclient != null) {
				httpclient.close();
			}
		}
		catch (Exception e) {
			log.error(e.getMessage(),e);
			e.printStackTrace();
		}
		return result;
	}











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值