Как передать параметр в данные формы, используя CloseableHttpResponse для запроса Post - PullRequest
0 голосов
/ 06 июля 2019

если я пытаюсь передать параметр, используя raw "{" success ": 0," error ": 404," error_message ":" Invalid Request Method "," Response ":" error "}, но при передаче параметров в формеdata или x-www-form-urlencoded, тогда я получаю правильный ответ в почтальоне

Я видел все предыдущие заданные вопросы, я не получил правильный вывод, поэтому, пожалуйста, объясните мне.jar написал код и выполнил, но ответ, который я получил, будет {"success": 0, "error": 404, "error_message": "Invalid Request Method", "Response": "error"} Как можно передать параметр, используя x-www-form-urlencoded или form-data вместо необработанных строковых данных.

public void PostApiTests() throws ClientProtocolException, IOException{
    iclapi=new ICL_API();

    HashMap<String, String> hashMap = new HashMap<String, String>();
    hashMap.put("appid", "F3561E632DF224DC2B1B9129FAD71");
    hashMap.put("Content-Type", "text/html");


    // Jackson Api
    ObjectMapper mapper = new ObjectMapper();
    parameters = new parameters("loginwithpass", "1038","1038","1234543");

    String jsonresp=mapper.writeValueAsString(parameters);
    System.out.println("Test Data"+jsonresp);

    closeablehttpResponse = iclapi.post(URL, jsonresp, hashMap);
    System.out.println("JSON Output - "+closeablehttpResponse);

    StatusCode = closeablehttpResponse.getStatusLine().getStatusCode();
    System.out.println("Status Code---->" + StatusCode);
    Assert.assertEquals(StatusCode, RESPONSE_STATUS_CODE_200,
            "Status is not 200");

    String body=EntityUtils.toString(closeablehttpResponse.getEntity(),"UTF-8");
    System.out.println("Body " + body);
    JSONObject jsonobj=new JSONObject(body);
    System.out.println("The response from API is " +jsonobj);

    String success=UtilMethod.getValueByJPath(jsonobj,"/error_message");
    System.out.println("Success ID "+success);

}

public CloseableHttpResponse post(String url,String entityString,HashMap<String,String> headerMap) throws ClientProtocolException, IOException{
    CloseableHttpClient httpClient=HttpClients.createDefault();
    HttpPost httppost=new HttpPost(url);

    httppost.setEntity(new StringEntity(entityString));

    for(Map.Entry<String, String> entry:headerMap.entrySet()){
        httppost.addHeader(entry.getKey(),entry.getValue());
    }
    CloseableHttpResponse closeablehttpResponse=httpClient.execute(httppost);
    return closeablehttpResponse;
    }

public static String getValueByJPath(JSONObject responsejson,String jpath){
    Object obj = responsejson;
    for(String s : jpath.split("/")) 
        if(!s.isEmpty()) 
            if(!(s.contains("[") || s.contains("]")))
                obj = ((JSONObject) obj).get(s);
            else if(s.contains("[") || s.contains("]"))
                obj = ((JSONArray) ((JSONObject) obj).get(s.split("\\[")[0])).get(Integer.parseInt(s.split("\\[")[1].replace("]", "")));
    return obj.toString();
}

public String getSuccess() {
    return success;
}


public void setSuccess(String success) {
    this.success = success;
}


public String getError() {
    return error;
}


public void setError(String error) {
    this.error = error;
}


public String getError_message() {
    return error_message;
}


public void setError_message(String error_message) {
    this.error_message = error_message;
}


public String getUser_id() {
    return user_id;
}


public void setUser_id(String user_id) {
    this.user_id = user_id;
}


public String getName() {
    return name;
}


public void setName(String name) {
    this.name = name;
}


public String getPhone() {
    return phone;
}


public void setPhone(String phone) {
    this.phone = phone;
}


public String getRegion() {
    return Region;
}


public void setRegion(String region) {
    Region = region;
}


public String getDistrictcode() {
    return districtcode;
}


public void setDistrictcode(String districtcode) {
    this.districtcode = districtcode;
}


public String getDistrictname() {
    return districtname;
}


public void setDistrictname(String districtname) {
    this.districtname = districtname;
}


public String getAccess_token() {
    return access_token;
}


public void setAccess_token(String access_token) {
    this.access_token = access_token;
}


public parameters(String tag,String usercode,String password,String fcmid){
    this.tag=tag;
    this.usercode=usercode;
    this.password=password;
    this.fcmid=fcmid;
}


public String getTag() {
    return tag;
}


public void setTag(String tag) {
    this.tag = tag;
}


public String getUsercode() {
    return usercode;
}


public void setUsercode(String usercode) {
    this.usercode = usercode;
}


public String getPassword() {
    return password;
}


public void setPassword(String password) {
    this.password = password;
}


public String getFcmid() {
    return fcmid;
}


public void setFcmid(String fcmid) {
    this.fcmid = fcmid;
}

Тестовые данные вывода на консоль {"tag": "loginwithpass", "usercode": "1038", "password": "1038" , "fcmid": "1234543", "успех": нулевой, "ошибка": нулевой, "error_message": нулевой, "user_id": нулевой, "имя": нулевой, "телефон": нулевой, "districtcode": null, "имя-района": null, "access_token": null, "region": null} Выходные данные JSON - HttpResponseProxy {HTTP / 1.1 200 OK [Дата: сб, 06 июля 2019 11:59:50 GMT, сервер: Apache, X-Powered-By: PHP / 5.5.38, срок действия истекает, четверг, 19 ноября 1981 г. 08:52:00 GMT, Cache-Control: нет хранилища, нет кэша,must-revalidate, max-age = 0, post-check = 0, pre-check = 0, Pragma: no-cache, Set-Cookie: PHPSESSID = vcf0s368aom5b8hp0023qhp584;путь = /, обновление: h2, h2c, соединение: обновление, Keep-Alive, Vary: Accept-Encoding, User-Agent, Keep-Alive: timeout = 5, Content-Type: application / json] org.apache.http.client.entity.DecompressingEntity@79e4c792} Код состояния ----> 200 Тело {"success": 0, "error": 404, "error_message": "Недопустимый метод запроса", "Response": "error"} Ответиз API: {"error_message": "Недопустимый метод запроса", "Ответ": "Ошибка", "Успех": 0, "Ошибка": 404}

...