HttpAsyncClient httpClient ; in debuger it is
org.apache.http.impl.nio.client.DefaultHttpAsyncClient, (so looks good)
httpClient.execute(HttpRequestBase, callback);

httpRequestBase was created as
HttpRequestBase httpReq = null;
        httpReq = doPost ? new HttpPost(targetUrl) : new HttpGet(targetUrl);

if (doPost) {
    ((HttpPost) httpReq).setEntity(new UrlEncodedFormEntity(nvps));
}

later it results in executing non async code in:

    public BasicAsyncRequestProducer(final HttpHost target, final
HttpRequest request) {
        if (target == null) {
            throw new IllegalArgumentException("HTTP host may not be null");
        }
        if (request == null) {
            throw new IllegalArgumentException("HTTP request may not be
null");
        }
        this.target = target;
        this.request = request;
        if (request instanceof HttpEntityEnclosingRequest) {
            HttpEntity entity = ((HttpEntityEnclosingRequest)
request).getEntity();
            if (entity != null) {
                if (entity instanceof HttpAsyncContentProducer) {
                    this.producer = (HttpAsyncContentProducer) entity;  //
this is not executed, how to make it execute??
                } else {
                    this.producer = new EntityAsyncContentProducer(entity);
//--> this is executed
                }
            } else {
                this.producer = null;
            }
        } else {
            this.producer = null;
        }
    }

How should I create HttpRequestBase to later trigger executing async io ?

Now requests are send 2 by 2 - when first 2 sent requests get response, next
two are sent, other requests are possibly queued, sending isn't blocking,
but requests aren't really sent parallelly but they seem to be queued.

How should I fix it ?


/**
 * Basic implementation of {@link HttpAsyncContentProducer} that relies on
 * inefficient and potentially blocking I/O operation redirection through
 * {@link Channels#newChannel(java.io.InputStream)}.
 *
 * @since 4.2
 */
@NotThreadSafe
public class EntityAsyncContentProducer implements HttpAsyncContentProducer
{


and possibly this is why my code isn't truly asynchronous,
How should I fix it ? 



--
View this message in context: 
http://httpcomponents.10934.n7.nabble.com/how-to-create-HttpEntityEnclosingRequest-with-HttpAsyncContentProducer-entity-tp20874.html
Sent from the HttpClient-User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org

Reply via email to