私はVolley androidライブラリを使ってGETリクエストをしようとしていますが、私はサーバをチェックしてリクエストを受け取りましたが、パラメータはありません。私はPOSTとGETでこれを試しましたが、うまくいきませんでした。これはまた、アイブ氏は、クラスを使用して、カスタム要求を作成し、クラス内getParamsメソッドをオーバーライドしようとした私のコードAndroid用のvolleyがGET/POSTリクエストで自分のパラメータを送信しないのはなぜですか?
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);
ですが、それは同じ結果を持っています。
は、これは私が使用されるカスタム要求クラスだった:私はURLに私はこのような必要なパラメータを追加することでした溶液で来た私が受け取った答えに
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);
}
}
私が知る限り、GETはPOSTのようなボディパラメータを使用しません。 POSTの例だけでなく、サーバー側のリクエストをどのようにテストしているのかを表示してください。 –
クリケットが言うように、GETはパラメータを使用せず、そのパラメータをクエリ文字列としてURLに追加します。 –
@GabeSechanさて、私はGET要求でボディーパラメーターを渡すことはできませんが、どうすればAndroidのURLにパラメーターを追加することができますか?私はAlamofireを通常のパラメータとして渡すだけで、iOSでこれを実現しました。 – ravelinx