если я пытаюсь передать параметр, используя 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}