package de.pbauerochse.worklogviewer.util;
import org.apache.http.Header;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.SystemDefaultRoutePlanner;
import org.apache.http.message.BasicHeader;
import java.net.ProxySelector;
import java.util.ArrayList;
import java.util.List;
/**
* Created by patrick on 01.11.15.
*/
public class HttpClientUtil {
public static HttpClientBuilder getDefaultClientBuilder(int connectTimeoutInSeconds) {
RequestConfig config = RequestConfig
.custom()
.setConnectTimeout(connectTimeoutInSeconds * 1000)
.setConnectionRequestTimeout(connectTimeoutInSeconds * 1000)
.build();
SystemDefaultRoutePlanner routePlanner = new SystemDefaultRoutePlanner(ProxySelector.getDefault());
return HttpClients
.custom()
.setDefaultRequestConfig(config)
.setRoutePlanner(routePlanner);
}
public static List<Header> getRegularBrowserHeaders() {
List<Header> headerList = new ArrayList<>();
headerList.add(new BasicHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36"));
headerList.add(new BasicHeader("Accept-Encoding", "gzip, deflate, sdch"));
headerList.add(new BasicHeader("Accept-Language", "de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4"));
return headerList;
}
public static boolean isValidResponseCode(StatusLine statusLine) {
if (statusLine == null) throw ExceptionUtil.getIllegalArgumentException("exceptions.main.worker.nullstatus");
int statusCode = statusLine.getStatusCode();
return (statusCode >= HttpStatus.SC_OK && statusCode < HttpStatus.SC_MULTIPLE_CHOICES);
}
}