package pl.pwr.smartkill.tools.httpRequests;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.CookieStore;
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 org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import pl.pwr.smartkill.tools.NinjaHTTPClient;
import pl.pwr.smartkill.tools.WebserviceHandler;
import android.content.Context;
import android.util.Log;
public class PostRequest implements HttpRequest {
private String url;
private HashMap<String, String> entities;
public PostRequest(String url, HashMap<String, String> entities) {
this.url=url;
this.entities=entities;
}
@Override
public InputStream execute(Context ctx,CookieStore store) {
HttpParams httpParameters = new BasicHttpParams();
DefaultHttpClient client = new NinjaHTTPClient(httpParameters, ctx);
client.setCookieStore(store);
HttpPost postRequest = new HttpPost(url);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
for(String ent: entities.keySet()){
nvps.add(new BasicNameValuePair(ent, entities.get(ent)));
}
try {
postRequest.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
} catch (UnsupportedEncodingException e1) {
}
try {
if (postRequest == null) Log.e("client", "nullowo");
HttpResponse getResponse = client.execute(postRequest);
final int statusCode = getResponse.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w(WebserviceHandler.TAG, "Error " + statusCode + " for URL " + url);
return null;
}
HttpEntity responseEntity = getResponse.getEntity();
return responseEntity.getContent();
} catch (IOException e) {
postRequest.abort();
Log.w(WebserviceHandler.TAG, "Error for URL " + url, e);
}
return null;
}
@Override
public String getUrl() {
return url;
}
}