package com.letv.commonjar.http;
import android.content.Context;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HttpContext;
/**
* Processes http requests in synchronous mode, so your caller thread will be blocked on each
* request
*
* @see com.AsyncHttpClient.android.http.AsyncHttpClient
*/
class SyncHttpClient extends AsyncHttpClient {
/**
* Creates a new SyncHttpClient with default constructor arguments values
*/
public SyncHttpClient() {
super();
}
/**
* Creates a new SyncHttpClient.
*
* @param schemeRegistry SchemeRegistry to be used
*/
public SyncHttpClient(SchemeRegistry schemeRegistry) {
super(schemeRegistry);
}
@Override
protected RequestReceipt sendRequest(DefaultHttpClient client,
HttpContext httpContext, HttpUriRequest uriRequest,
String contentType, ResponseInterface responseHandler,
Context context) {
if (contentType != null) {
uriRequest.addHeader("Content-Type", contentType);
}
responseHandler.setUseSynchronousMode(true);
/*
* will execute the request directly
*/
new AsyncHttpRequest(client, httpContext, DEFAULT_SOCKET_TIMEOUT, uriRequest, responseHandler).run();
// Return a Request Handle that cannot be used to cancel the request
// because it is already complete by the time this returns
return new RequestReceipt(null);
}
}