mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-18 02:13:08 +09:00
pt 1 in reviving the android build (copied from pm 28a1, wish me luck)
This commit is contained in:
parent
efa9662725
commit
d7788a6d6d
4249 changed files with 468189 additions and 0 deletions
244
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/client/CloseableHttpClient.java
vendored
Normal file
244
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/client/CloseableHttpClient.java
vendored
Normal file
|
|
@ -0,0 +1,244 @@
|
|||
/*
|
||||
* ====================================================================
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
* ====================================================================
|
||||
*
|
||||
* This software consists of voluntary contributions made by many
|
||||
* individuals on behalf of the Apache Software Foundation. For more
|
||||
* information on the Apache Software Foundation, please see
|
||||
* <http://www.apache.org/>.
|
||||
*
|
||||
*/
|
||||
|
||||
package ch.boye.httpclientandroidlib.impl.client;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.UndeclaredThrowableException;
|
||||
import java.net.URI;
|
||||
|
||||
import ch.boye.httpclientandroidlib.androidextra.HttpClientAndroidLog;
|
||||
/* LogFactory removed by HttpClient for Android script. */
|
||||
import ch.boye.httpclientandroidlib.HttpEntity;
|
||||
import ch.boye.httpclientandroidlib.HttpHost;
|
||||
import ch.boye.httpclientandroidlib.HttpRequest;
|
||||
import ch.boye.httpclientandroidlib.HttpResponse;
|
||||
import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
|
||||
import ch.boye.httpclientandroidlib.client.ClientProtocolException;
|
||||
import ch.boye.httpclientandroidlib.client.HttpClient;
|
||||
import ch.boye.httpclientandroidlib.client.ResponseHandler;
|
||||
import ch.boye.httpclientandroidlib.client.methods.CloseableHttpResponse;
|
||||
import ch.boye.httpclientandroidlib.client.methods.HttpUriRequest;
|
||||
import ch.boye.httpclientandroidlib.client.utils.URIUtils;
|
||||
import ch.boye.httpclientandroidlib.protocol.HttpContext;
|
||||
import ch.boye.httpclientandroidlib.util.Args;
|
||||
import ch.boye.httpclientandroidlib.util.EntityUtils;
|
||||
|
||||
/**
|
||||
* Base implementation of {@link HttpClient} that also implements {@link Closeable}.
|
||||
*
|
||||
* @since 4.3
|
||||
*/
|
||||
@ThreadSafe
|
||||
public abstract class CloseableHttpClient implements HttpClient, Closeable {
|
||||
|
||||
public HttpClientAndroidLog log = new HttpClientAndroidLog(getClass());
|
||||
|
||||
protected abstract CloseableHttpResponse doExecute(HttpHost target, HttpRequest request,
|
||||
HttpContext context) throws IOException, ClientProtocolException;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public CloseableHttpResponse execute(
|
||||
final HttpHost target,
|
||||
final HttpRequest request,
|
||||
final HttpContext context) throws IOException, ClientProtocolException {
|
||||
return doExecute(target, request, context);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public CloseableHttpResponse execute(
|
||||
final HttpUriRequest request,
|
||||
final HttpContext context) throws IOException, ClientProtocolException {
|
||||
Args.notNull(request, "HTTP request");
|
||||
return doExecute(determineTarget(request), request, context);
|
||||
}
|
||||
|
||||
private static HttpHost determineTarget(final HttpUriRequest request) throws ClientProtocolException {
|
||||
// A null target may be acceptable if there is a default target.
|
||||
// Otherwise, the null target is detected in the director.
|
||||
HttpHost target = null;
|
||||
|
||||
final URI requestURI = request.getURI();
|
||||
if (requestURI.isAbsolute()) {
|
||||
target = URIUtils.extractHost(requestURI);
|
||||
if (target == null) {
|
||||
throw new ClientProtocolException("URI does not specify a valid host name: "
|
||||
+ requestURI);
|
||||
}
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public CloseableHttpResponse execute(
|
||||
final HttpUriRequest request) throws IOException, ClientProtocolException {
|
||||
return execute(request, (HttpContext) null);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public CloseableHttpResponse execute(
|
||||
final HttpHost target,
|
||||
final HttpRequest request) throws IOException, ClientProtocolException {
|
||||
return doExecute(target, request, (HttpContext) null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes a request using the default context and processes the
|
||||
* response using the given response handler. The content entity associated
|
||||
* with the response is fully consumed and the underlying connection is
|
||||
* released back to the connection manager automatically in all cases
|
||||
* relieving individual {@link ResponseHandler}s from having to manage
|
||||
* resource deallocation internally.
|
||||
*
|
||||
* @param request the request to execute
|
||||
* @param responseHandler the response handler
|
||||
*
|
||||
* @return the response object as generated by the response handler.
|
||||
* @throws IOException in case of a problem or the connection was aborted
|
||||
* @throws ClientProtocolException in case of an http protocol error
|
||||
*/
|
||||
public <T> T execute(final HttpUriRequest request,
|
||||
final ResponseHandler<? extends T> responseHandler) throws IOException,
|
||||
ClientProtocolException {
|
||||
return execute(request, responseHandler, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes a request using the default context and processes the
|
||||
* response using the given response handler. The content entity associated
|
||||
* with the response is fully consumed and the underlying connection is
|
||||
* released back to the connection manager automatically in all cases
|
||||
* relieving individual {@link ResponseHandler}s from having to manage
|
||||
* resource deallocation internally.
|
||||
*
|
||||
* @param request the request to execute
|
||||
* @param responseHandler the response handler
|
||||
* @param context the context to use for the execution, or
|
||||
* <code>null</code> to use the default context
|
||||
*
|
||||
* @return the response object as generated by the response handler.
|
||||
* @throws IOException in case of a problem or the connection was aborted
|
||||
* @throws ClientProtocolException in case of an http protocol error
|
||||
*/
|
||||
public <T> T execute(final HttpUriRequest request,
|
||||
final ResponseHandler<? extends T> responseHandler, final HttpContext context)
|
||||
throws IOException, ClientProtocolException {
|
||||
final HttpHost target = determineTarget(request);
|
||||
return execute(target, request, responseHandler, context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes a request using the default context and processes the
|
||||
* response using the given response handler. The content entity associated
|
||||
* with the response is fully consumed and the underlying connection is
|
||||
* released back to the connection manager automatically in all cases
|
||||
* relieving individual {@link ResponseHandler}s from having to manage
|
||||
* resource deallocation internally.
|
||||
*
|
||||
* @param target the target host for the request.
|
||||
* Implementations may accept <code>null</code>
|
||||
* if they can still determine a route, for example
|
||||
* to a default target or by inspecting the request.
|
||||
* @param request the request to execute
|
||||
* @param responseHandler the response handler
|
||||
*
|
||||
* @return the response object as generated by the response handler.
|
||||
* @throws IOException in case of a problem or the connection was aborted
|
||||
* @throws ClientProtocolException in case of an http protocol error
|
||||
*/
|
||||
public <T> T execute(final HttpHost target, final HttpRequest request,
|
||||
final ResponseHandler<? extends T> responseHandler) throws IOException,
|
||||
ClientProtocolException {
|
||||
return execute(target, request, responseHandler, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes a request using the default context and processes the
|
||||
* response using the given response handler. The content entity associated
|
||||
* with the response is fully consumed and the underlying connection is
|
||||
* released back to the connection manager automatically in all cases
|
||||
* relieving individual {@link ResponseHandler}s from having to manage
|
||||
* resource deallocation internally.
|
||||
*
|
||||
* @param target the target host for the request.
|
||||
* Implementations may accept <code>null</code>
|
||||
* if they can still determine a route, for example
|
||||
* to a default target or by inspecting the request.
|
||||
* @param request the request to execute
|
||||
* @param responseHandler the response handler
|
||||
* @param context the context to use for the execution, or
|
||||
* <code>null</code> to use the default context
|
||||
*
|
||||
* @return the response object as generated by the response handler.
|
||||
* @throws IOException in case of a problem or the connection was aborted
|
||||
* @throws ClientProtocolException in case of an http protocol error
|
||||
*/
|
||||
public <T> T execute(final HttpHost target, final HttpRequest request,
|
||||
final ResponseHandler<? extends T> responseHandler, final HttpContext context)
|
||||
throws IOException, ClientProtocolException {
|
||||
Args.notNull(responseHandler, "Response handler");
|
||||
|
||||
final HttpResponse response = execute(target, request, context);
|
||||
|
||||
final T result;
|
||||
try {
|
||||
result = responseHandler.handleResponse(response);
|
||||
} catch (final Exception t) {
|
||||
final HttpEntity entity = response.getEntity();
|
||||
try {
|
||||
EntityUtils.consume(entity);
|
||||
} catch (final Exception t2) {
|
||||
// Log this exception. The original exception is more
|
||||
// important and will be thrown to the caller.
|
||||
this.log.warn("Error consuming content after an exception.", t2);
|
||||
}
|
||||
if (t instanceof RuntimeException) {
|
||||
throw (RuntimeException) t;
|
||||
}
|
||||
if (t instanceof IOException) {
|
||||
throw (IOException) t;
|
||||
}
|
||||
throw new UndeclaredThrowableException(t);
|
||||
}
|
||||
|
||||
// Handling the response was successful. Ensure that the content has
|
||||
// been fully consumed.
|
||||
final HttpEntity entity = response.getEntity();
|
||||
EntityUtils.consume(entity);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue