code: private JSONObject sendPostRequest(String url, Integer type, HashMap<String, String> params) throws JSONException {
  		String fullUrl = getFullUrl(url);
  		HttpPost request = new HttpPost(fullUrl);
  		
  		switch(type) {
  		case METHOD_PUT:
  		case METHOD_DELETE:
  			// assign overload value
          	String oValue;
          	if (type == METHOD_PUT) {
          		oValue = "put";
          	} else {
          		oValue = "delete";
          	}
          	params.put(OVERLOAD_PARAM, oValue);
  		case METHOD_POST:
  			break;
  		default:
              throw new RuntimeException("Wrong http method requested");
  		}
  		
  		// doing post request using json to avoid issue with urlencoded symbols
  		JSONObject json = new JSONObject();
  		
          for (Map.Entry<String, String> entry : params.entrySet()) {
              json.put(entry.getKey(), entry.getValue());
          }
  		
  		request.setHeader("Content-Type", "application/json");
  		try {
  			request.setEntity(new StringEntity(json.toString()));
  		} catch (UnsupportedEncodingException e1) {
  			// TODO Auto-generated catch block
  			e1.printStackTrace();
  		}
  		
          // sign request
  		try {
  			mOAuthConsumer.sign(request);
  		}
  		catch (OAuthException e) {
              e.printStackTrace();
          }
  		
          return UpworkRestClient.getJSONObject(request, type, params);
      }
docs: Send signed POST OAuth request
  
  @param	url Relative URL
  @param	type Type of HTTP request (HTTP method)
  @param	params Hash of parameters
  @throws	JSONException If JSON object is invalid or request was abnormal
  @return	{@link JSONObject} JSON Object that contains data from response