먼저, Apache HttpClient를 사용하여이 작업을 수행 할 수없는 이유는 없습니다. 'http.route.default-proxy'매개 변수를 사용하여 프록시를 통해 요청을 실행하도록 클라이언트를 구성 했습니까? 당신이이 같은 아파치 HttpCore 함께 할 수있는 방법이다 낮은 구성 요소를 사용하여 괜찮다면
어쨌든, 같은 다른 HTTP 라이브러리 매우 행할 확신
HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
new RequestContent(),
new RequestTargetHost(),
new RequestConnControl(),
new RequestUserAgent()});
HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();
HttpContext context = new BasicHttpContext();
HttpHost target = new HttpHost("www.cached", port);
HttpHost proxy = new HttpHost("squid", 8080);
HttpParams params = new BasicHttpParams();
HttpRequest request = new BasicHttpRequest("PURGE", "www.cached:port/params");
DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
try {
if (!conn.isOpen()) {
Socket socket = new Socket(proxy.getHostName(), proxy.getPort());
conn.bind(socket, params);
}
context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, target);
httpexecutor.preProcess(request, httpproc, context);
HttpResponse response = httpexecutor.execute(request, conn, context);
httpexecutor.postProcess(response, httpproc, context);
// do something useful with the response
if (!connStrategy.keepAlive(response, context)) {
conn.close();
} else {
// Connection could be kept alive
}
} finally {
conn.close();
}
}
(차단)
https://netty.io/를 보셨습니까? – ollins
작동 할 수 있습니다. DefaultHttpRequest에서 toString을 재정의 할 수 있습니다. 내일 할거야. – Alex