package com.network.httpclient;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.util.EntityUtils;
import android.util.Log;
public class HttpPostTask implements Runnable
{
private String url;
private String data;
private INetworkListener listener;
public HttpPostTask( final String url, final String data, final INetworkListener listener )
{
this.url = url;
this.data = data;
this.listener = listener;
}
@Override
public void run( )
{
if ( this.url != null && this.url.length( ) > 0 )
{
sendRequest( this.url, this.data, this.listener );
}
}
private static void sendRequest( final String url, final String data,
final INetworkListener listener )
{
ISender sender = NetworkFactory.newSender( );
HttpPost post = new HttpPost( url );
if ( data != null && data.length( ) > 0 )
{
post.setEntity( new ByteArrayEntity( data.getBytes( ) ) );
}
try
{
HttpResponse response = sender.execute( post );
if ( listener != null
&& response.getStatusLine( ).getStatusCode( ) == HttpStatus.SC_OK )
{
listener.networkSucceed( EntityUtils.toByteArray( response.getEntity( ) ) );
}
}
catch ( IOException ioe )
{
Log.e( HttpPostTask.class.getName( ), ioe.getMessage( ), ioe );
}
finally
{
sender.shutdown( );
sender = null;
}
}
}