package com.papagiannis.tuberun.fetchers; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.URLDecoder; import java.util.ArrayList; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.StatusLine; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; 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.message.BasicNameValuePair; import android.util.Log; public class PostRequestTask extends RequestTask { public PostRequestTask(HttpCallback cb) { super(cb); // TODO Auto-generated constructor stub } @Override protected String doInBackground(String... uri) { HttpClient httpclient = new DefaultHttpClient(); HttpPost post=new HttpPost(uri[0]); HttpResponse response; String responseString = ""; try { post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); post.setHeader("User-Agent", myUserAgent); if (localContext==null) response = httpclient.execute(post); else response = httpclient.execute(post,localContext); StatusLine statusLine = response.getStatusLine(); if (statusLine.getStatusCode() == HttpStatus.SC_OK) { ByteArrayOutputStream out = new ByteArrayOutputStream(); response.getEntity().writeTo(out); out.close(); responseString = out.toString(); } else { // Closes the connection. response.getEntity().getContent().close(); throw new IOException(statusLine.getReasonPhrase()); } } catch (ClientProtocolException e) { } catch (IOException e) { Log.e("Fetcher","Fetching", e); } return responseString; } ArrayList<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>(); public void addKeyValue(String k, String v) { nameValuePairs.add(new BasicNameValuePair(k, v)); } @SuppressWarnings("deprecation") public void setPostData(StringBuilder postData) { String data=postData.toString(); String[] tokens= data.split("&"); for (int i=0;i<tokens.length;i++) { String[] kv=tokens[i].split("="); if (kv.length==1) nameValuePairs.add(new BasicNameValuePair(URLDecoder.decode( kv[0]), "")); else nameValuePairs.add(new BasicNameValuePair(URLDecoder.decode( kv[0]), URLDecoder.decode( kv[1]) )); } } }