Wenn Sie JsonRequest in Volley Erstellen von benutzerdefinierten GsonVolleyRequest und verwenden folgenden Code:
JSONObject request = new JSONObject();
request.put("data", val);
GsonRequest gsonRequest = new GsonRequest(Request.Method.POST,
URL, Model.class,
request, new SuccessListner(), new ErrorListner(), true, new GsonRequest.onSuccessError() {
@Override
public void onMessageReceive(final String message) {
view.onSuccessError(message);
}
});
requestQueue().addToRequestQueue(gsonRequest, false);
Für diese Gson anfordern Verwendung unter Klasse:
public class GsonRequest<T> extends JsonRequest<T> {
public static final String TAG = GsonRequest.class.getName();
private final Gson gson = new Gson();
private final Class<T> clazz;
private final Response.Listener<T> listener;
private SharedPreferenceApp preferenceApp;
private boolean isHeader;
private onSuccessError onSuccessError;
public GsonRequest(int method, String url, Class<T> clazz, JSONObject jsonObject,
Response.Listener<T> listener, Response.ErrorListener errorListener,
boolean isHeader, onSuccessError onSuccessError) {
super(method, url, (jsonObject == null) ? null : jsonObject.toString(), listener,
errorListener);
if (BuildConfig.DEBUG) {
System.out.println("POST_URL : " + url);
if (jsonObject != null)
System.out.println("POST_REQUEST : " + jsonObject);
}
this.clazz = clazz;
this.listener = listener;
this.isHeader = isHeader;
preferenceApp = new SharedPreferenceApp(CrestereBuyerApp.getInstance());
this.onSuccessError = onSuccessError;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
if (isHeader) {
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "Bearer " + preferenceApp.getApptoken());
return headers;
} else {
return super.getHeaders();
}
}
@Override
protected Response<T> parseNetworkResponse(NetworkResponse networkResponse) {
try {
String json = new String(networkResponse.data, HttpHeaderParser.parseCharset(networkResponse.headers));
if (BuildConfig.DEBUG) {
Log.e("Server Response : ", "" + json);
System.out.println("Server Response : " + json);
}
JSONObject jsonObject = new JSONObject(json);
if (jsonObject.has("success") && jsonObject.getBoolean("success")) {
return Response.success(gson.fromJson(json, clazz), HttpHeaderParser.parseCacheHeaders(networkResponse));
} else if (jsonObject.has("errors")) {
JSONArray jsonArray = jsonObject.getJSONArray("errors");
if (jsonArray.length() > 0) {
final JSONObject jsonObject1 = (JSONObject) jsonArray.get(0);
if (jsonObject1.has("message")) {
onSuccessError.onMessageReceive(jsonObject1.getString("message"));
} else if (jsonObject1.has("msg")) {
onSuccessError.onMessageReceive(jsonObject1.getString("msg"));
} else {
return Response.error(new AuthFailureError());
}
}
} else if (jsonObject.has("responseHeader")) {
return Response.success(gson.fromJson(json, clazz), HttpHeaderParser.parseCacheHeaders(networkResponse));
} else if (jsonObject.has("msg")) {
onSuccessError.onMessageReceive(jsonObject.getString("msg"));
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
Log.e("Response Error : ", "" + e.getMessage());
return Response.error(new ParseError(e));
} catch (JsonSyntaxException e) {
e.printStackTrace();
Log.e("Response Error : ", "" + e.getMessage());
return Response.error(new ParseError(e));
} catch (JSONException e) {
e.printStackTrace();
return Response.error(new ParseError(e));
}
return Response.error(null);
}
@Override
protected void deliverResponse(T t) {
if (listener != null)
listener.onResponse(t);
}
public interface onSuccessError {
void onMessageReceive(String message);
}
}
Zur Referenzierung diese GsonRequest überprüfen link
meine API-Ausgabe ist wie folgt {"id": 7, "Vorname": "Acer", "Nachname": "Aspire", "E-Mail": "[email protected]", "Telefon": "0476300225"} –
und URL ist http://192.168.43.235:8080/ api/employee/save –
Sicher, wir helfen dir, was hast du bisher probiert? Zuerst zu suchen wäre ein guter erster Schritt. – Denny