[
https://issues.apache.org/jira/browse/HTTPCLIENT-1844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lê Văn Thanh updated HTTPCLIENT-1844:
-------------------------------------
Description:
I tried to using CloseableHttpClient with tor proxy but i got a messenge :
org.apache.http.NoHttpResponseException: The target server failed to respond
My code I using CloseableHttpClient:
Thread thread = new Thread() {
@Override
public void run() {
try {
HttpGet headMethod = new HttpGet("https://wtfismyip.com/");
HttpHost proxy = new HttpHost("127.0.0.1", 9150);
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(5 * 1000)
.setConnectTimeout(5 * 1000)
.build();
headMethod.setConfig(requestConfig);
RegistryBuilder<ConnectionSocketFactory>
connRegistryBuilder = RegistryBuilder.create();
connRegistryBuilder.register("http",
PlainConnectionSocketFactory.INSTANCE);
SSLContext sslContext
= SSLContexts.custom().loadTrustMaterial(null, new
TrustStrategy() {
@Override
public boolean isTrusted(final
X509Certificate[] chain, String authType) {
return true;
}
}).build();
SSLConnectionSocketFactory sslsf
= new SniSSLConnectionSocketFactory(sslContext,
NoopHostnameVerifier.INSTANCE);
connRegistryBuilder.register("https", sslsf);
Registry<ConnectionSocketFactory> connRegistry =
connRegistryBuilder.build();
PoolingHttpClientConnectionManager connectionManager = new
SniPoolingHttpClientConnectionManager(connRegistry);
connectionManager.setMaxTotal(10);
connectionManager.setDefaultMaxPerRoute(10);
CloseableHttpClient httpClient = HttpClientBuilder
.create()
.setDefaultRequestConfig(requestConfig)
.setConnectionManager(connectionManager)
.setProxy(proxy)
.disableContentCompression()
.build();
HttpResponse httpResponse = httpClient.execute(headMethod);
int statusCode =
httpResponse.getStatusLine().getStatusCode();
System.out.println(statusCode);
} catch (IOException | NoSuchAlgorithmException |
KeyStoreException | KeyManagementException ex) {
Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
null, ex);
}
}
};
thread.start();
But when i using HttpURLConnection then ok , so I don't know why
CloseableHttpClient not ok.
My code i using HttpURLConnection :
new Thread(() -> {
try {
URL url = new URL("https://wtfismyip.com/");
Proxy proxy = new Proxy(Proxy.Type.SOCKS, new
InetSocketAddress("localhost", 9150));
HttpURLConnection uc = (HttpURLConnection)
url.openConnection(proxy);
uc.setConnectTimeout(10000);
Map<String, List<String>> map = uc.getHeaderFields();
System.out.println("status = " + uc.getResponseCode());
} catch (MalformedURLException ex) {
Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
null, ex);
} catch (IOException ex) {
Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
null, ex);
}
}).start();
Many thanks !
was:
I tried to using CloseableHttpClient with tor proxy but i got a messenge :
org.apache.http.NoHttpResponseException: The target server failed to respond
My code I using CloseableHttpClient:
Thread thread = new Thread() {
@Override
public void run() {
try {
HttpGet headMethod = new HttpGet("https://wtfismyip.com/");
HttpHost proxy = new HttpHost("127.0.0.1", 9150);
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(5 * 1000)
.setConnectTimeout(5 * 1000)
.build();
headMethod.setConfig(requestConfig);
RegistryBuilder<ConnectionSocketFactory>
connRegistryBuilder = RegistryBuilder.create();
connRegistryBuilder.register("http",
PlainConnectionSocketFactory.INSTANCE);
SSLContext sslContext
= SSLContexts.custom().loadTrustMaterial(null, new
TrustStrategy() {
@Override
public boolean isTrusted(final
X509Certificate[] chain, String authType) {
return true;
}
}).build();
SSLConnectionSocketFactory sslsf
= new SniSSLConnectionSocketFactory(sslContext,
NoopHostnameVerifier.INSTANCE);
connRegistryBuilder.register("https", sslsf);
Registry<ConnectionSocketFactory> connRegistry =
connRegistryBuilder.build();
PoolingHttpClientConnectionManager connectionManager = new
SniPoolingHttpClientConnectionManager(connRegistry);
connectionManager.setMaxTotal(10);
connectionManager.setDefaultMaxPerRoute(10);
CloseableHttpClient httpClient = HttpClientBuilder
.create()
.setDefaultRequestConfig(requestConfig)
.setConnectionManager(connectionManager)
.setProxy(proxy)
.disableContentCompression()
.build();
HttpResponse httpResponse = httpClient.execute(headMethod);
int statusCode =
httpResponse.getStatusLine().getStatusCode();
System.out.println(statusCode);
} catch (IOException | NoSuchAlgorithmException |
KeyStoreException | KeyManagementException ex) {
Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
null, ex);
}
}
};
thread.start();
But when i using HttpURLConnection then ok , so I don't know why
CloseableHttpClient not ok.
My code i using HttpURLConnection :
new Thread(() -> {
try {
URL url = new URL("https://wtfismyip.com/");
Proxy proxy = new Proxy(Proxy.Type.SOCKS, new
InetSocketAddress("localhost", 9150));
HttpURLConnection uc = (HttpURLConnection)
url.openConnection(proxy);
uc.setConnectTimeout(10000);
Map<String, List<String>> map = uc.getHeaderFields();
System.out.println("status = " + uc.getResponseCode());
} catch (MalformedURLException ex) {
Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
null, ex);
} catch (IOException ex) {
Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
null, ex);
}
}).start();
> CloseableHttpClient error : org.apache.http.NoHttpResponseException failed to
> respond
> -------------------------------------------------------------------------------------
>
> Key: HTTPCLIENT-1844
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1844
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient (async)
> Affects Versions: 4.5.3
> Environment: JDK : Java 8
> IDE : Netbean
> EVR : MacOS
> Reporter: Lê Văn Thanh
> Attachments: log_bug
>
>
> I tried to using CloseableHttpClient with tor proxy but i got a messenge :
> org.apache.http.NoHttpResponseException: The target server failed to respond
> My code I using CloseableHttpClient:
> Thread thread = new Thread() {
> @Override
> public void run() {
> try {
> HttpGet headMethod = new
> HttpGet("https://wtfismyip.com/");
> HttpHost proxy = new HttpHost("127.0.0.1", 9150);
> RequestConfig requestConfig = RequestConfig.custom()
> .setSocketTimeout(5 * 1000)
> .setConnectTimeout(5 * 1000)
> .build();
> headMethod.setConfig(requestConfig);
> RegistryBuilder<ConnectionSocketFactory>
> connRegistryBuilder = RegistryBuilder.create();
> connRegistryBuilder.register("http",
> PlainConnectionSocketFactory.INSTANCE);
> SSLContext sslContext
> = SSLContexts.custom().loadTrustMaterial(null,
> new TrustStrategy() {
> @Override
> public boolean isTrusted(final
> X509Certificate[] chain, String authType) {
> return true;
> }
> }).build();
> SSLConnectionSocketFactory sslsf
> = new SniSSLConnectionSocketFactory(sslContext,
> NoopHostnameVerifier.INSTANCE);
> connRegistryBuilder.register("https", sslsf);
> Registry<ConnectionSocketFactory> connRegistry =
> connRegistryBuilder.build();
> PoolingHttpClientConnectionManager connectionManager =
> new SniPoolingHttpClientConnectionManager(connRegistry);
> connectionManager.setMaxTotal(10);
> connectionManager.setDefaultMaxPerRoute(10);
> CloseableHttpClient httpClient = HttpClientBuilder
> .create()
> .setDefaultRequestConfig(requestConfig)
> .setConnectionManager(connectionManager)
> .setProxy(proxy)
> .disableContentCompression()
> .build();
> HttpResponse httpResponse =
> httpClient.execute(headMethod);
> int statusCode =
> httpResponse.getStatusLine().getStatusCode();
> System.out.println(statusCode);
> } catch (IOException | NoSuchAlgorithmException |
> KeyStoreException | KeyManagementException ex) {
>
> Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE, null, ex);
> }
> }
> };
> thread.start();
> But when i using HttpURLConnection then ok , so I don't know why
> CloseableHttpClient not ok.
> My code i using HttpURLConnection :
> new Thread(() -> {
> try {
> URL url = new URL("https://wtfismyip.com/");
> Proxy proxy = new Proxy(Proxy.Type.SOCKS, new
> InetSocketAddress("localhost", 9150));
> HttpURLConnection uc = (HttpURLConnection)
> url.openConnection(proxy);
> uc.setConnectTimeout(10000);
> Map<String, List<String>> map = uc.getHeaderFields();
> System.out.println("status = " + uc.getResponseCode());
>
> } catch (MalformedURLException ex) {
> Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
> null, ex);
> } catch (IOException ex) {
> Logger.getLogger(TestTor.class.getName()).log(Level.SEVERE,
> null, ex);
> }
> }).start();
> Many thanks !
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]