package com.sjriley.zappit.models; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import android.content.Context; import android.location.Location; import android.util.Log; import com.google.gson.Gson; import com.sjriley.zappit.vo.CodeCheckRequest; import com.sjriley.zappit.vo.CodeCheckResponse; public class CodeCheckModel extends BaseModel { private static final String TAG = CodeCheckModel.class.getSimpleName(); public CodeCheckModel(Context context){ super(context); } public CodeCheckResponse checkCode(String userid, String barcode) { HttpPost request = new HttpPost("http://zappit.co/service/codecheck"); List<NameValuePair> nvp = new ArrayList<NameValuePair>(); Location location = getLocation(); CodeCheckRequest params = new CodeCheckRequest("Hw2za8Hn", userid, barcode, location.getLatitude(),location.getLongitude()); Gson gson = new Gson(); nvp.add(new BasicNameValuePair("info", gson.toJson(params))); nvp.add(new BasicNameValuePair("submit", "send")); CodeCheckResponse result = new CodeCheckResponse(); try { request.setEntity(new UrlEncodedFormEntity(nvp, HTTP.UTF_8)); HttpResponse response = httpClient.execute(request); BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); result = gson.fromJson(reader, CodeCheckResponse.class); } catch (UnsupportedEncodingException e) { result.setStatus(-10); result.setMessage("Could not encode parameters"); e.printStackTrace(); } catch (ClientProtocolException e) { result.setStatus(-10); result.setMessage("Could not connect to server"); e.printStackTrace(); } catch (IOException e) { result.setStatus(-10); result.setMessage("Could not read response"); e.printStackTrace(); } catch (Exception e) { result.setMessage("Unknown exception"); e.printStackTrace(); } return result; } }