я неоднократно получать этот Неожиданный код ответа 500 и 400. Пожалуйста, помогитеНеожиданный ответ 400 и 500 в залпе с gson после метода
GsonRequest Класс
общественного класса GsonRequest расширяет Request
{
частный Gson mGson = новый Gson();
закрытый класс clazz;
частные заголовки карт;
private Map<String, String> params;
private Listener<T> listener;
//String mRequestBody;
Map<String, String> mRequestBody;
/**
* Make a GET request and return a parsed object from JSON.
*
* @param url URL of the request to make
* @param clazz Relevant class object, for Gson's reflection
*/
public GsonRequest(int method,
String url,
Class<T> clazz,
Listener<T> listener,
ErrorListener errorListener) {
super(method, url, errorListener);
this.clazz = clazz;
this.listener = listener;
mGson = new Gson();
}
/**
* Make a POST request and return a parsed object from JSON.
*
* @param url URL of the request to make
* @param clazz Relevant class object, for Gson's reflection
*/
public GsonRequest(int method,
String url,
Class<T> clazz,
Map<String, String> headers,
Map<String, String> requestBody,
//String requestBody,
Listener<T> listener,
ErrorListener errorListener) {
super(method, url, errorListener);
//this.mRequestBody = requestBody;
this.params = requestBody;
this.listener = listener;
this.headers = headers;
mGson = new Gson();
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return (headers != null) ? headers : super.getHeaders();
}
@Override
public String getBodyContentType() {
return "application/x-www-form-urlencoded";
}
@Override`protected void deliverResponse(T response) {
listener.onResponse(response);
}
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
try {
String json = new String(
response.data, HttpHeaderParser.parseCharset(response.headers));
return Response.success(
mGson.fromJson(json, clazz), HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JsonSyntaxException e) {
return Response.error(new ParseError(e));
}
}
}
Мой класс активности
общественный класс Act_GsonRequest расширяет активность { частное TextView mTvResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act__gson_request);
mTvResult = (TextView) findViewById(R.id.tv_result);
Button btnSimpleRequest = (Button) findViewById(R.id.btn_gson_request);
btnSimpleRequest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
RequestQueue queue=Volley.newRequestQueue(Act_GsonRequest.this);
Map<String, String> stringMap = new HashMap<>();
stringMap.put("from", "Kathmandu");
stringMap.put("to", "Kakadvitta");
stringMap.put("date", "2015-12-20");
Log.e("Request body :::::", stringMap.toString());
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("Authorization", "Basic YWRtaW46YWRtaW4=");
headers.put("user", "admin");
Log.e("Headers :::::", headers.toString());
GsonRequest<MyClass1> req = new GsonRequest(
Method.POST,
"http://192.168.0.112:8080/customer/webresources/generic/trips",
MyClass1.class,
headers,
stringMap,
createMyReqSuccessListener(),
createMyReqErrorListener());
queue.add(req);
};
});
}
private String buildRequestBody(Object content) {
String output = null;
if ((content instanceof String) ||
(content instanceof JSONObject) ||
(content instanceof JSONArray)) {
output = content.toString();
} else if (content instanceof Map) {
Uri.Builder builder = new Uri.Builder();
HashMap hashMap = (HashMap) content;
if (hashMap != null) {
Iterator entries = hashMap.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
builder.appendQueryParameter(entry.getKey().toString(), entry.getValue().toString());
entries.remove();
}
output = builder.build().getEncodedQuery();
}
}
return output;
}
private Response.Listener<MyClass1> createMyReqSuccessListener() {
return new Response.Listener<MyClass1>() {
@Override
public void onResponse(MyClass1 response) {
Log.e("Response message",response.getStatus());
}
};
}
private Response.ErrorListener createMyReqErrorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
mTvResult.setText(error.getMessage());
NetworkResponse networkResponse = error.networkResponse;
if (networkResponse != null) {
Log.e("Volley", "Error. HTTP Status Code:"+networkResponse.statusCode);
}
if (error instanceof TimeoutError) {
Log.e("Volley", "TimeoutError");
}else if(error instanceof NoConnectionError){
Log.e("Volley", "NoConnectionError");
} else if (error instanceof AuthFailureError) {
Log.e("Volley", "AuthFailureError");
} else if (error instanceof ServerError) {
Log.e("Volley", "ServerError");
} else if (error instanceof NetworkError) {
Log.e("Volley", "NetworkError");
} else if (error instanceof ParseError) {
Log.e("Volley", "ParseError");
}
}
};
}
}
Добро пожаловать в Stack Overflow.Этот вопрос не указывает, где он терпит неудачу или что вы попытались исправить проблему, с которой вы сталкиваетесь. – Pachonk
работает отлично с json, но когда я пытался позвонить с gson. Это дает мне неожиданную ошибку 400 (в основном). Я не знаю, что случилось с кодом выше. –