Turns out there's a 3rd timeout:

ConnManagerParams.setTimeout( params, 2000 );

For whatever reason the connection isn't being established and it was
hanging in limbo. Specifying a timeout on the connection manager at least
allows me to handle the situation. Just FYI in case anyone else runs into
this prob.

-S

On Sun, Aug 1, 2010 at 5:29 PM, Connick <[email protected]> wrote:

> Forgot to mention, it's hanging on httpClient.execute( request )
>
>
>
> On Sun, Aug 1, 2010 at 5:23 PM, Connick <[email protected]> wrote:
>
>> I have a service that is loading images from a server. Almost every time
>> the service runs it gets hung up on what seems to be misfire with the
>> connection to the server. On closer inspection it looks as though HTTPClient
>> spontaneously decides to hang as the last successful request from the server
>> results in a status 200 and I don't see the next request go out. What's
>> really bizarre is that it unblocks if I turn the device and force landscape
>> (or vice-versa). If I'm loading, say 30 images, I'll have to turn the device
>> portrait and landscape 2-3x for all the requests to complete sucessfully.
>> Definately a wtf moment.
>>
>> Here's my setup:
>>
>>             HttpParams params = new BasicHttpParams();
>>             HttpProtocolParams.setVersion( params, HttpVersion.HTTP_1_1 );
>>             HttpProtocolParams.setContentCharset( params,
>> HTTP.DEFAULT_CONTENT_CHARSET );
>>             HttpProtocolParams.setUseExpectContinue( params, true );
>>
>>             HttpConnectionParams.setConnectionTimeout( params,
>> Constants.HTTP_CONNECTION_TIMEOUT );
>>             HttpConnectionParams.setSoTimeout( params,
>> Constants.HTTP_SOCKET_TIMEOUT );
>>             HttpConnectionParams.setStaleCheckingEnabled( params, true );
>>             HttpConnectionParams.setLinger( params, 0 );
>>
>>             SchemeRegistry schemeRegistry = new SchemeRegistry();
>>             schemeRegistry.register( new Scheme( "http",
>> PlainSocketFactory.getSocketFactory(), 80 ) );
>>             schemeRegistry.register( new Scheme( "https",
>> SSLSocketFactory.getSocketFactory(), 443 ) );
>>
>>             ClientConnectionManager connectionManager = new
>> ThreadSafeClientConnManager( params, schemeRegistry );
>>
>>             HttpRequestInterceptor preemptiveAuth = new
>> HttpRequestInterceptor()
>>             {
>>                 public void process( final HttpRequest request, final
>> HttpContext context ) throws HttpException, IOException
>>                 {
>>                     AuthState authState = (AuthState)
>> context.getAttribute( ClientContext.TARGET_AUTH_STATE );
>>                     CredentialsProvider credsProvider =
>> (CredentialsProvider) context.getAttribute( ClientContext.CREDS_PROVIDER );
>>                     HttpHost targetHost = (HttpHost) context.getAttribute(
>> ExecutionContext.HTTP_TARGET_HOST );
>>
>>                     if( authState.getAuthScheme() == null )
>>                     {
>>                         AuthScope authScope = new AuthScope(
>> targetHost.getHostName(), targetHost.getPort() );
>>                         Credentials creds = credsProvider.getCredentials(
>> authScope );
>>                         if( creds != null )
>>                         {
>>                             authState.setAuthScheme( new BasicScheme() );
>>                             authState.setCredentials( creds );
>>                         }
>>                     }
>>                 }
>>             };
>>             httpClient = new DefaultHttpClient( connectionManager, params
>> );
>>             httpClient.addRequestInterceptor( preemptiveAuth, 0 );
>>
>>
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to