use of org.apache.http.client.ClientProtocolException in project elasticsearch-analysis-ik by medcl.
the class Dictionary method getRemoteWords.
/**
* 从远程服务器上下载自定义词条
*/
private static List<String> getRemoteWords(String location) {
List<String> buffer = new ArrayList<String>();
RequestConfig rc = RequestConfig.custom().setConnectionRequestTimeout(10 * 1000).setConnectTimeout(10 * 1000).setSocketTimeout(60 * 1000).build();
CloseableHttpClient httpclient = HttpClients.createDefault();
CloseableHttpResponse response;
BufferedReader in;
HttpGet get = new HttpGet(location);
get.setConfig(rc);
try {
response = httpclient.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
String charset = "UTF-8";
// 获取编码,默认为utf-8
if (response.getEntity().getContentType().getValue().contains("charset=")) {
String contentType = response.getEntity().getContentType().getValue();
charset = contentType.substring(contentType.lastIndexOf("=") + 1);
}
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), charset));
String line;
while ((line = in.readLine()) != null) {
buffer.add(line);
}
in.close();
response.close();
return buffer;
}
response.close();
} catch (ClientProtocolException e) {
logger.error("getRemoteWords {} error", e, location);
} catch (IllegalStateException e) {
logger.error("getRemoteWords {} error", e, location);
} catch (IOException e) {
logger.error("getRemoteWords {} error", e, location);
}
return buffer;
}
use of org.apache.http.client.ClientProtocolException in project mobile-android by photo.
the class ApiBase method execute.
/**
* Execute a request to the API.
*
* @param request request to perform
* @param baseUrl the base server url
* @param consumer the oauth consumer key to sign request
* @param listener Progress Listener with callback on progress
* @param connectionTimeout the connection and socket timeout
* @return the response from the API
* @throws ClientProtocolException
* @throws IOException
*/
public ApiResponse execute(ApiRequest request, String baseUrl, OAuthConsumer consumer, ProgressListener listener, int connectionTimeout) throws ClientProtocolException, IOException {
// PoolingClientConnectionManager();
HttpParams params = new BasicHttpParams();
// set params for connection...
HttpConnectionParams.setStaleCheckingEnabled(params, false);
HttpConnectionParams.setConnectionTimeout(params, connectionTimeout);
HttpConnectionParams.setSoTimeout(params, connectionTimeout);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
DefaultHttpClient httpClient = new DefaultHttpClient(params);
HttpUriRequest httpRequest = createHttpRequest(request, baseUrl, listener);
httpRequest.getParams().setBooleanParameter("http.protocol.expect-continue", false);
httpRequest.setHeader("User-Agent", "android");
httpRequest.setHeader("source", "android");
if (consumer != null) {
try {
consumer.sign(httpRequest);
} catch (Exception e) {
GuiUtils.noAlertError(TAG, "Error signing request", e);
}
} else {
TrackerUtils.trackBackgroundEvent("not_signed_request", baseUrl + request.getPath());
}
return new ApiResponse(baseUrl + request.getPath(), httpClient.execute(httpRequest));
}
use of org.apache.http.client.ClientProtocolException in project robovm by robovm.
the class AbstractHttpClient method execute.
// non-javadoc, see interface HttpClient
public final HttpResponse execute(HttpHost target, HttpRequest request, HttpContext context) throws IOException, ClientProtocolException {
if (request == null) {
throw new IllegalArgumentException("Request must not be null.");
}
// a null target may be acceptable, this depends on the route planner
// a null context is acceptable, default context created below
HttpContext execContext = null;
RequestDirector director = null;
// all shared objects that are potentially threading unsafe.
synchronized (this) {
HttpContext defaultContext = createHttpContext();
if (context == null) {
execContext = defaultContext;
} else {
execContext = new DefaultedHttpContext(context, defaultContext);
}
// Create a director for this request
director = createClientRequestDirector(getRequestExecutor(), getConnectionManager(), getConnectionReuseStrategy(), getConnectionKeepAliveStrategy(), getRoutePlanner(), getHttpProcessor().copy(), getHttpRequestRetryHandler(), getRedirectHandler(), getTargetAuthenticationHandler(), getProxyAuthenticationHandler(), getUserTokenHandler(), determineParams(request));
}
try {
return director.execute(target, request, execContext);
} catch (HttpException httpException) {
throw new ClientProtocolException(httpException);
}
}
use of org.apache.http.client.ClientProtocolException in project androidquery by androidquery.
the class AbstractAjaxCallback method httpDo.
private void httpDo(HttpUriRequest hr, String url, AjaxStatus status) throws ClientProtocolException, IOException {
DefaultHttpClient client = getClient();
if (proxyHandle != null) {
proxyHandle.applyProxy(this, hr, client);
}
if (AGENT != null) {
hr.addHeader("User-Agent", AGENT);
} else if (AGENT == null && GZIP) {
hr.addHeader("User-Agent", "gzip");
}
if (headers != null) {
for (String name : headers.keySet()) {
hr.addHeader(name, headers.get(name));
}
}
if (GZIP && (headers == null || !headers.containsKey("Accept-Encoding"))) {
hr.addHeader("Accept-Encoding", "gzip");
}
if (ah != null) {
ah.applyToken(this, hr);
}
String cookie = makeCookie();
if (cookie != null) {
hr.addHeader("Cookie", cookie);
}
HttpParams hp = hr.getParams();
if (proxy != null)
hp.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
if (timeout > 0) {
hp.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout);
hp.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout);
}
if (!redirect) {
hp.setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, false);
}
HttpContext context = new BasicHttpContext();
CookieStore cookieStore = new BasicCookieStore();
context.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
request = hr;
if (abort) {
throw new IOException("Aborted");
}
if (SIMULATE_ERROR) {
throw new IOException("Simulated Error");
}
HttpResponse response = null;
try {
//response = client.execute(hr, context);
response = execute(hr, client, context);
} catch (HttpHostConnectException e) {
//if proxy is used, automatically retry without proxy
if (proxy != null) {
AQUtility.debug("proxy failed, retrying without proxy");
hp.setParameter(ConnRoutePNames.DEFAULT_PROXY, null);
//response = client.execute(hr, context);
response = execute(hr, client, context);
} else {
throw e;
}
}
byte[] data = null;
String redirect = url;
int code = response.getStatusLine().getStatusCode();
String message = response.getStatusLine().getReasonPhrase();
String error = null;
HttpEntity entity = response.getEntity();
File file = null;
File tempFile = null;
if (code < 200 || code >= 300) {
InputStream is = null;
try {
if (entity != null) {
is = entity.getContent();
byte[] s = toData(getEncoding(entity), is);
error = new String(s, "UTF-8");
AQUtility.debug("error", error);
}
} catch (Exception e) {
AQUtility.debug(e);
} finally {
AQUtility.close(is);
}
} else {
HttpHost currentHost = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST);
redirect = currentHost.toURI() + currentReq.getURI();
int size = Math.max(32, Math.min(1024 * 64, (int) entity.getContentLength()));
OutputStream os = null;
InputStream is = null;
try {
file = getPreFile();
if (file == null) {
os = new PredefinedBAOS(size);
} else {
//file.createNewFile();
tempFile = makeTempFile(file);
os = new BufferedOutputStream(new FileOutputStream(tempFile));
}
is = entity.getContent();
boolean gzip = "gzip".equalsIgnoreCase(getEncoding(entity));
if (gzip) {
is = new GZIPInputStream(is);
}
int contentLength = (int) entity.getContentLength();
//AQUtility.debug("gzip response", entity.getContentEncoding());
copy(is, os, contentLength, tempFile, file);
if (file == null) {
data = ((PredefinedBAOS) os).toByteArray();
} else {
if (!file.exists() || file.length() == 0) {
file = null;
}
}
} finally {
AQUtility.close(is);
AQUtility.close(os);
}
}
AQUtility.debug("response", code);
if (data != null) {
AQUtility.debug(data.length, url);
}
status.code(code).message(message).error(error).redirect(redirect).time(new Date()).data(data).file(file).client(client).context(context).headers(response.getAllHeaders());
}
use of org.apache.http.client.ClientProtocolException in project QiDict by timqi.
the class AsyncSearch method doInBackground.
@Override
protected String doInBackground(String... strings) {
String tmp, reuse;
reuse = tmp = strings[0].trim();
if (tmp.isEmpty())
return mStringBuilder.append("请输入需要翻译的内容!\n").toString();
try {
if (!isTrans)
isTrans = tmp.contains(" ");
tmp = URLEncoder.encode(strings[0].trim(), "utf-8");
if (isTrans)
tmp = urlTranPre + tmp;
else
tmp = urlPre + tmp;
if (isEnToZh)
tmp = tmp + urlTranNextEnToZh;
else
tmp = tmp + urlTranNextZhToEn;
HttpResponse response = httpClient.execute(new HttpGet(tmp));
tmp = EntityUtils.toString(response.getEntity());
if (isCancelled())
return null;
parseJSONAndUpdate(tmp, reuse);
} catch (UnsupportedEncodingException e) {
mStringBuilder.append("不支持URL编码,请更换查询内容!");
} catch (ClientProtocolException e) {
mStringBuilder.append("客户网络协议错误,请重试!");
} catch (IOException e) {
mStringBuilder.append("IO传输错误,请重试!");
} catch (JSONException e) {
mStringBuilder.delete(0, mStringBuilder.length());
mStringBuilder.append("没有找到相关翻译!\n");
}
return mStringBuilder.toString();
}
Aggregations