0
私は、認証でhttp接続を構築するのにvolleyを使用したいと思います。私は、セグメント匿名内部クラスでAndroid Studioプロンプトで「メソッドがそのスーパークラスをオーバーライドしない」理由
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
String creds = String.format("%s:%s","USERNAME","PASSWORD");
String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT);
params.put("Authorization", auth);
return params;
}
StringRequest
を追加し、それがどのように見えるthis answer次のとおりです。
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
//the segment below is what I add
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
String creds = String.format("%s:%s","USERNAME","PASSWORD");
String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT);
params.put("Authorization", auth);
return params;
}
//the segment above is what I add
@Override
public void onResponse(String response) {
// Display the first 500 characters of the response string.
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
はしかし、IDEはgetHeaders()
はスーパークラスをオーバーライドしていないことを示唆しています。
なぜですか?StringRequestがクラスRequest<String>
を継承し、後者にgetHeaders()
というメソッドがあります。
あなたは 'Request'クラスを拡張していますか?例えば。 'public class GetUser extends Request' –
Draken