Search in sources :

Example 1 with Header

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);
        }
    });
}
Also used : Header(cz.msebera.android.httpclient.Header) AsyncHttpResponseHandler(com.loopj.android.http.AsyncHttpResponseHandler) AsyncHttpClient(com.loopj.android.http.AsyncHttpClient)

Example 2 with Header

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);
}
Also used : StatusLine(cz.msebera.android.httpclient.StatusLine) Header(cz.msebera.android.httpclient.Header) HttpResponseException(cz.msebera.android.httpclient.client.HttpResponseException) PatternSyntaxException(java.util.regex.PatternSyntaxException)

Example 3 with Header

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;
}
Also used : AsyncHttpResponseHandler(com.loopj.android.http.AsyncHttpResponseHandler) FutureTask(java.util.concurrent.FutureTask) Header(cz.msebera.android.httpclient.Header) ResponseHandlerInterface(com.loopj.android.http.ResponseHandlerInterface)

Example 4 with Header

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;
}
Also used : Header(cz.msebera.android.httpclient.Header) BasicHeader(cz.msebera.android.httpclient.message.BasicHeader) ArrayList(java.util.ArrayList) BasicHeader(cz.msebera.android.httpclient.message.BasicHeader)

Example 5 with Header

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()]);
}
Also used : Header(cz.msebera.android.httpclient.Header) BasicHeader(cz.msebera.android.httpclient.message.BasicHeader) BasicHeader(cz.msebera.android.httpclient.message.BasicHeader)

Aggregations

Header (cz.msebera.android.httpclient.Header)13 BasicHeader (cz.msebera.android.httpclient.message.BasicHeader)6 AsyncHttpResponseHandler (com.loopj.android.http.AsyncHttpResponseHandler)3 AsyncHttpClient (com.loopj.android.http.AsyncHttpClient)2 ArrayList (java.util.ArrayList)2 Book (com.codepath.android.booksearch.models.Book)1 BookClient (com.codepath.android.booksearch.net.BookClient)1 JsonFactory (com.fasterxml.jackson.core.JsonFactory)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 BaseJsonHttpResponseHandler (com.loopj.android.http.BaseJsonHttpResponseHandler)1 JsonHttpResponseHandler (com.loopj.android.http.JsonHttpResponseHandler)1 RangeFileAsyncHttpResponseHandler (com.loopj.android.http.RangeFileAsyncHttpResponseHandler)1 ResponseHandlerInterface (com.loopj.android.http.ResponseHandlerInterface)1 SampleJSON (com.loopj.android.http.sample.util.SampleJSON)1 HttpHost (cz.msebera.android.httpclient.HttpHost)1 HttpRequest (cz.msebera.android.httpclient.HttpRequest)1 ProtocolException (cz.msebera.android.httpclient.ProtocolException)1 StatusLine (cz.msebera.android.httpclient.StatusLine)1 CircularRedirectException (cz.msebera.android.httpclient.client.CircularRedirectException)1 HttpResponseException (cz.msebera.android.httpclient.client.HttpResponseException)1