Ich versuche, eine GET-Anfrage mit Volley Android-Bibliothek zu machen, aber wenn ich tun, überprüfe ich den Server und die Anfrage wurde empfangen, aber die Parameter nicht. Ich habe dies mit POST und GET versucht, aber keiner hat funktioniert. Dies ist mein CodeWarum sendet Volley für Android meine Parameter nicht in meinen GET/POST-Anfragen?
StringRequest stringRequest = new StringRequest(Request.Method.GET, all ,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put("t","inVLlhZ0I29tPpoLGpBO9KzVI0zM-3ED3KiTcAuCUJ65TBbUZBnmCg");
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
Auch Ive versucht, eine Klasse verwenden und eine benutzerdefinierte Anforderung und Überschreiben der getParams Methode innerhalb der Klasse zu schaffen, aber es das gleiche Ergebnis.
Dies war die individuelle Anfrage Klasse I verwendet:
public class CustomRequest extends Request<JSONObject> {
private Listener<JSONObject> listener;
private Map<String, String> params;
public CustomRequest(String url, Map<String, String> params,
Listener<JSONObject> reponseListener, ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.listener = reponseListener;
this.params = params;
}
public CustomRequest(int method, String url, Map<String, String> params,
Listener<JSONObject> reponseListener, ErrorListener errorListener) {
super(method, url, errorListener);
this.listener = reponseListener;
this.params = params;
}
protected Map<String, String> getParams()
throws com.android.volley.AuthFailureError {
return params;
};
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
return Response.success(new JSONObject(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
@Override
protected void deliverResponse(JSONObject response) {
// TODO Auto-generated method stub
listener.onResponse(response);
}
}
Soweit ich weiß, verwendet GET keine Körperparameter wie POST. Bitte zeigen Sie ein POST-Beispiel sowie wie Sie die Anfrage auf der Serverseite testen –
Wie Cricket sagt, GET verwendet keine Parameter, es hängt seine Parameter als Abfrage-String an die URL. –
@GabeSechan Ok, ich bekomme jetzt, dass ich Körperparams in einer GET-Anfrage nicht übergeben kann, aber wie kann ich erreichen, dann die Parameter an die URL in Android anzuhängen ?. Das habe ich in iOS mit Alamofire erreicht, indem ich sie einfach als normale Parameter übergeben habe. – ravelinx