public void sendViaHttpClient() {
    final Long startTime = System.currentTimeMillis();
    try {
      if (PODTYPE.POD_REJECTED != PodType) {
        File file = new File(filePath);

        // defensive check

        if (!file.exists()) {
          Log.d("UploadPhoto", "File does not exists");
          LocationDB.getInstance().deleteFromPhotoTable(filePath);
          ConsumerForEverythingElse.getInstance().removeFromQueue(UploadPhotoTask.this);
          return;
        }
        Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
        byte[] arr = Utils.bitmapToBytes(bitmap, CompressFormat.JPEG, 75);
        encodedImage = Base64.encodeToString(arr, Base64.DEFAULT);
      }
      JSONObject body = new JSONObject();
      body.put(Constants.DEALER_ID, dealerId);
      body.put("img", encodedImage);
      body.put(Constants.POD_TYPE, PodType);
      body.put(Constants.GRID, grId);
      Location location = GPSTracker.getInstance().getLastKnownLocation();
      Log.d("locattt", location + "");
      if (location != null) {
        body.put(Constants.LOCATION, location.getLatitude() + "," + location.getLongitude());
      }
      body.put(Constants.STS, System.currentTimeMillis() / 1000);
      StringLocEntity entity = new StringLocEntity(body.toString(), this);
      String URL = Constants.HTTP_STRING + Constants.DEV_STAGING_HOST + Constants.UPLOAD_PHOTO;

      RequestParams params =
          new RequestBuilder().AddToken(true).setEntity(entity).setUrl(URL).build();
      HTTPManager.post(
          params,
          new IResponse() {

            @Override
            public void onSuccess(String response) {
              Log.d(
                  "UploadPhotoSuccess",
                  response + "Time Taken" + (System.currentTimeMillis() - startTime) / 1000 + "");
              LocationDB.getInstance().deleteFromPhotoTable(filePath);
              ConsumerForEverythingElse.getInstance().removeFromQueue(UploadPhotoTask.this);
            }

            @Override
            public void onFailure(int i) {
              ConsumerForEverythingElse.getInstance().toggleNetworkState();
            }
          });
    } catch (JSONException e) {
      e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
  }
  @Override
  public void run() {
    String URL = Constants.HTTP_STRING + Constants.DEV_STAGING_HOST + Constants.UPDATE_LOC;

    JSONObject body = new JSONObject();
    try {
      body.put(Constants.LOCATION, location.toJsonString());

      body.put(Constants.STS, timeStamp);
      body.put(
          Constants.GR_GROUP_ID,
          LocationSharedPreference.getInstance().getData(Constants.GR_GROUP_ID, ""));
      Log.d("Location changed", body.toString());
      StringEntity entity = new StringEntity(body.toString());

      RequestParams params =
          new RequestBuilder().setEntity(entity).AddToken(true).setUrl(URL).build();

      HTTPManager.post(
          params,
          new IResponse() {

            @Override
            public void onSuccess(String response) {
              Log.d(
                  "SendLocToServer",
                  "Thread is " + Thread.currentThread() + "res is >>>" + response);
              LocationDB.getInstance().deleteFromLocationTable(location);
              ConsumerLocation.getInstance().removeFromQueue(SendLocationToServer.this);
            }

            @Override
            public void onFailure(int i) {
              Log.w("SendLocToServer", "Request Failed: " + i);
              ConsumerLocation.getInstance().toggleNetworkState();
            }
          });

    } catch (Exception e) {
      e.printStackTrace();
    }
  }