package carpool.asyncTask.relayTask; import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicHeader; import org.apache.http.protocol.HTTP; import org.json.JSONObject; import carpool.common.DebugLog; import carpool.configurations.CarpoolConfig; import carpool.factory.JSONFactory; import carpool.interfaces.PseudoAsyncTask; import carpool.model.Letter; public class LetterRelayTask implements PseudoAsyncTask{ public static final String relay_letterPushUrl = "http://localhost:8017/api/v1.0/letter/push"; private Letter letter; public LetterRelayTask(Letter letter){ this.letter = letter; } public boolean execute(){ return sendLetterToRelay(); } public boolean sendLetterToRelay(){ HttpPost request = new HttpPost(relay_letterPushUrl); JSONObject json = JSONFactory.toJSON(this.letter); StringEntity entity; HttpResponse response = null; try { entity = new StringEntity(json.toString()); entity.setContentType("application/json;charset=UTF-8"); entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8")); request.setHeader("Accept", "application/json"); request.setEntity(entity); DefaultHttpClient httpClient = new DefaultHttpClient(); response = httpClient.execute(request); } catch (UnsupportedEncodingException e) { e.printStackTrace(); DebugLog.d(e); return false; } catch (ClientProtocolException e) { e.printStackTrace(); DebugLog.d(e); return false; } catch (IOException e) { e.printStackTrace(); DebugLog.d(e); return false; } if (response.getStatusLine().getStatusCode() != 200){ DebugLog.d(CarpoolConfig.log_errKeyword + " sending letter failed with status: " + response.getStatusLine().getStatusCode()); } return response.getStatusLine().getStatusCode() == 200 ? true : false; } }