package org.czzz.demo;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import android.os.AsyncTask;
import android.util.Log;
public class HttpPostTask extends AsyncTask<Object, String, String>{
HttpListener taskListener;
public HttpPostTask(HttpListener taskListener){
this.taskListener = taskListener;
}
@Override
protected String doInBackground(Object... data) {
// TODO Auto-generated method stub
String url = String.valueOf(data[0]);
@SuppressWarnings("unchecked")
List<NameValuePair> params = (List<NameValuePair>) data[1];
HttpPost httpRequest = new HttpPost(url);
HttpResponse httpResponse;
try{
//发出HTTP request
httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
Log.d("DEBUG", "--- " + httpRequest.getURI());
//取得HTTP response
httpResponse=new DefaultHttpClient().execute(httpRequest);
if(httpResponse.getStatusLine().getStatusCode()==200){
return "200\t" + EntityUtils.toString(httpResponse.getEntity());
}else{
return httpResponse.getStatusLine().getStatusCode()
+ "\t" + EntityUtils.toString(httpResponse.getEntity());
}
}catch(Exception e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
String[] res = result.split("\t");
if(res[0].equals("200"))
taskListener.onTaskCompleted(res[1]);
else
taskListener.onTaskFailed(res[1]);
}
}