Update HTTP client to 4.4, ignore faulty SSL hostnames
[rhynodge.git] / src / main / java / net / pterodactylus / rhynodge / queries / HttpQuery.java
index 05f0830..362a04b 100644 (file)
@@ -19,6 +19,7 @@ package net.pterodactylus.rhynodge.queries;
 
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.util.concurrent.TimeUnit;
 
 import net.pterodactylus.rhynodge.Query;
 import net.pterodactylus.rhynodge.State;
@@ -28,9 +29,12 @@ import net.pterodactylus.rhynodge.states.HttpState;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
+import org.apache.http.client.HttpClient;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.protocol.ResponseContentEncoding;
 import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.params.HttpConnectionParams;
 import org.apache.http.util.EntityUtils;
 
 import com.google.common.io.Closeables;
@@ -65,14 +69,17 @@ public class HttpQuery implements Query {
        @Override
        @SuppressWarnings("deprecation")
        public State state() {
-               DefaultHttpClient httpClient = new DefaultHttpClient();
-               httpClient.addResponseInterceptor(new ResponseContentEncoding());
+               HttpClient httpClient = HttpClientBuilder.create()
+                               .setSSLHostnameVerifier((hostname, session) -> true)
+                               .addInterceptorFirst(new ResponseContentEncoding()).build();
                HttpGet get = new HttpGet(uri);
 
                InputStreamReader inputStreamReader = null;
                try {
                        /* make request. */
                        get.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11");
+                       HttpConnectionParams.setConnectionTimeout(get.getParams(), (int) TimeUnit.SECONDS.toMillis(300));
+                       HttpConnectionParams.setSoTimeout(get.getParams(), (int) TimeUnit.SECONDS.toMillis(300));
                        HttpResponse response = httpClient.execute(get);
                        if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
                                return new FailedState();