現在、私がgetリクエストを作成しようとすると、まず認証を受ける必要があります。だからWeb上で私はgetHeaders()を使用し、自分の資格情報を送信するためにハッシュマップを使用する必要があるようだ。しかし、私のヘッダーには私が送る必要がある少し余分な情報があります。Volley認証ヘッダー
は、私は問題は何ができるかわかりません。私はすべての正しい情報を送っているように感じる。
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, urlJsonObj, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
// JSONObject jsonArray = response.getJSONObject("response_message");
String message = response.getString("response_message");
Toast.makeText(getActivity(),
message,
Toast.LENGTH_LONG).show();
} catch (JSONException e1) {
e1.printStackTrace();
}
}
}
,
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volley", "Error");
}
}
) {
@Override
public Map getHeaders() throws AuthFailureError {
Map headers = new HashMap<>();
String credentials = "ezhu:[email protected]";
String auth = "Basic "
+ Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);
headers.put("Content-Type", "application/json");
headers.put("Authorization", auth);
headers.put("user-tz", "-330");
return headers;
}
};
requestQue.add(jsonObjectRequest);
}
私のログに401エラーが表示され、URLが表示されます。私はURLをクリックすると、私のブラウザのタブが開き、次を示しています。
{「ERROR_MESSAGE」:「リクエストメソッドのパラメータがありません」、「ERROR_CODE」:「1」、「エラー」: "行方不明リクエストヘッダを文字列型のメソッドパラメータの 'user-tz'}}
かなり便利だったものtz:-330 ")をブラウザのAPI URLに移動しようとするとします。だから正しく「デバッグ」していないかもしれません。それにもかかわらず、あなたのAndroidコードは、要求ヘッダを設定する限り正確に見えます。以前は、Map headers = new ArrayMap <>()を使っていましたが、違いがあるとは思いません。私はあなたが使用しようとしているサービスのAPIドキュメントをダブルチェックしてみましょう。 –
Brian
@この問題の解決策をすべて追加しますか? –