Мне нужно отправить запрос PUT на сервер. Тело требует ключ, который является String, и значение, которое должно быть JSONObject, с типом содержимого x- www-form-urlencoded. Я прикрепил требуемый запрос PUT для Postman, код, который я использую, и ошибку I ' м становится ниже. Пожалуйста, помогите!
![Postman](https://i.stack.imgur.com/HqaFz.png)
private void modifyObject(String object, String objectId) throws JSONException {
/**PUT REQUEST*/
String putUrl = api.url;
Log.d("putUrl", putUrl);
JSONObject jsonObject = new JSONObject();
jsonObject.put(dateName, actualDate);
jsonObject.put(locationName,actualLocation);
jsonObject.put(status,actualStatus);
final String requestBody = "data=" + jsonObject;
Log.d("requestBody", requestBody);
JsonObjectRequest request = new JsonObjectRequest(Request.Method.PUT, putUrl, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("Response", String.valueOf(response));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-type", "application/json");
headers.put("Authorization", accessToken);
return headers;
}
@Override
public String getBodyContentType() {
return "application/x-www-form-urlencoded; charset=utf-8";
}
@Override
public byte[] getBody() {
try {
return requestBody == null ? null : requestBody.getBytes("utf-8");
} catch (UnsupportedEncodingException uee) {
VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", requestBody, "utf-8");
return null;
}
}
};
mRequestQueue.add(request);
}
W/System.err: com.android.volley.ParseError: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
W/System.err: at com.android.volley.toolbox.JsonObjectRequest.parseNetworkResponse(JsonObjectRequest.java:90)
W/System.err: at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:143)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
W/System.err: Caused by: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
W/System.err: at org.json.JSON.typeMismatch(JSON.java:112)
at org.json.JSONObject.<init>(JSONObject.java:163)
at org.json.JSONObject.<init>(JSONObject.java:176)
W/System.err: at com.android.volley.toolbox.JsonObjectRequest.parseNetworkResponse(JsonObjectRequest.java:85)