use of cz.msebera.android.httpclient.Header in project xabber-android by redsolution.
the class FileManager method downloadFile.
public void downloadFile(final MessageItem messageItem, final ProgressListener progressListener) {
final String downloadUrl = messageItem.getText();
if (startedDownloads.contains(downloadUrl)) {
LogManager.i(FileManager.class, "Downloading of file " + downloadUrl + " already started");
return;
}
LogManager.i(FileManager.class, "Downloading file " + downloadUrl);
startedDownloads.add(downloadUrl);
final AsyncHttpClient client = new AsyncHttpClient();
client.setLoggingEnabled(SettingsManager.debugLog());
client.setResponseTimeout(60 * 1000);
client.get(downloadUrl, new AsyncHttpResponseHandler() {
@Override
public void onStart() {
super.onStart();
LogManager.i(FileManager.class, "on download start");
}
@Override
public void onSuccess(int statusCode, Header[] headers, final byte[] responseBody) {
LogManager.i(FileManager.class, "on download onSuccess: " + statusCode);
saveFile(responseBody, messageItem.getFile(), progressListener);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
LogManager.i(FileManager.class, "on download onFailure: " + statusCode);
}
@Override
public void onProgress(long bytesWritten, long totalSize) {
if (progressListener != null) {
progressListener.onProgress(bytesWritten, totalSize);
}
}
@Override
public void onFinish() {
super.onFinish();
startedDownloads.remove(downloadUrl);
}
});
}
use of cz.msebera.android.httpclient.Header in project android-async-http by loopj.
the class BinaryHttpResponseHandler method sendResponseMessage.
@Override
public final void sendResponseMessage(HttpResponse response) throws IOException {
StatusLine status = response.getStatusLine();
Header[] contentTypeHeaders = response.getHeaders(AsyncHttpClient.HEADER_CONTENT_TYPE);
if (contentTypeHeaders.length != 1) {
//malformed/ambiguous HTTP Header, ABORT!
sendFailureMessage(status.getStatusCode(), response.getAllHeaders(), null, new HttpResponseException(status.getStatusCode(), "None, or more than one, Content-Type Header found!"));
return;
}
Header contentTypeHeader = contentTypeHeaders[0];
boolean foundAllowedContentType = false;
for (String anAllowedContentType : getAllowedContentTypes()) {
try {
if (Pattern.matches(anAllowedContentType, contentTypeHeader.getValue())) {
foundAllowedContentType = true;
}
} catch (PatternSyntaxException e) {
AsyncHttpClient.log.e(LOG_TAG, "Given pattern is not valid: " + anAllowedContentType, e);
}
}
if (!foundAllowedContentType) {
//Content-Type not in allowed list, ABORT!
sendFailureMessage(status.getStatusCode(), response.getAllHeaders(), null, new HttpResponseException(status.getStatusCode(), "Content-Type (" + contentTypeHeader.getValue() + ") not allowed!"));
return;
}
super.sendResponseMessage(response);
}
use of cz.msebera.android.httpclient.Header in project android-async-http by loopj.
the class AsyncBackgroundThreadSample method getResponseHandler.
@Override
public ResponseHandlerInterface getResponseHandler() {
FutureTask<ResponseHandlerInterface> future = new FutureTask<>(new Callable<ResponseHandlerInterface>() {
@Override
public ResponseHandlerInterface call() throws Exception {
Log.d(LOG_TAG, "Creating AsyncHttpResponseHandler on background thread");
return new AsyncHttpResponseHandler(Looper.getMainLooper()) {
@Override
public void onStart() {
clearOutputs();
}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
Log.d(LOG_TAG, String.format("onSuccess executing on main thread : %B", Looper.myLooper() == Looper.getMainLooper()));
debugHeaders(LOG_TAG, headers);
debugStatusCode(LOG_TAG, statusCode);
debugResponse(LOG_TAG, new String(response));
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
Log.d(LOG_TAG, String.format("onFailure executing on main thread : %B", Looper.myLooper() == Looper.getMainLooper()));
debugHeaders(LOG_TAG, headers);
debugStatusCode(LOG_TAG, statusCode);
debugThrowable(LOG_TAG, e);
if (errorResponse != null) {
debugResponse(LOG_TAG, new String(errorResponse));
}
}
@Override
public void onRetry(int retryNo) {
Toast.makeText(AsyncBackgroundThreadSample.this, String.format("Request is retried, retry no. %d", retryNo), Toast.LENGTH_SHORT).show();
}
};
}
});
executor.execute(future);
ResponseHandlerInterface responseHandler = null;
try {
responseHandler = future.get();
Log.d(LOG_TAG, "Background thread for AsyncHttpResponseHandler has finished");
} catch (Exception e) {
e.printStackTrace();
}
return responseHandler;
}
use of cz.msebera.android.httpclient.Header in project android-async-http by loopj.
the class SampleParentActivity method getRequestHeadersList.
public List<Header> getRequestHeadersList() {
List<Header> headers = new ArrayList<Header>();
String headersRaw = headersEditText.getText() == null ? null : headersEditText.getText().toString();
if (headersRaw != null && headersRaw.length() > 3) {
String[] lines = headersRaw.split("\\r?\\n");
for (String line : lines) {
try {
int equalSignPos = line.indexOf('=');
if (1 > equalSignPos) {
throw new IllegalArgumentException("Wrong header format, may be 'Key=Value' only");
}
String headerName = line.substring(0, equalSignPos).trim();
String headerValue = line.substring(1 + equalSignPos).trim();
Log.d(LOG_TAG, String.format("Added header: [%s:%s]", headerName, headerValue));
headers.add(new BasicHeader(headerName, headerValue));
} catch (Throwable t) {
Log.e(LOG_TAG, "Not a valid header line: " + line, t);
}
}
}
return headers;
}
use of cz.msebera.android.httpclient.Header in project android-async-http by loopj.
the class Http401AuthSample method getRequestHeaders.
@Override
public Header[] getRequestHeaders() {
List<Header> headers = getRequestHeadersList();
// Add authentication header.
if (userName != null && passWord != null) {
byte[] base64bytes = Base64.encode((userName + ":" + passWord).getBytes(), Base64.DEFAULT);
String credentials = new String(base64bytes);
headers.add(new BasicHeader(HEADER_AUTHORIZATION, HEADER_BASIC + " " + credentials));
}
return headers.toArray(new Header[headers.size()]);
}
Aggregations