현재 요청을 받으면 먼저 인증해야합니다. 그래서 웹에서 보면 getHeaders()를 사용하고 hashmap을 사용하여 내 자격 증명을 제출해야합니다. 그러나 나의 우두머리는 내가 필요로하는 조금의 여분의 정보를 가지고있다.발리 인증 헤더
내가 문제가 될 수있는 것을 확실하지 않다. 나는 모든 권리 정보를 보내는 것처럼 느낍니다.
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'String 유형의 메소드 매개 변수 "}
꽤 도움이 무엇 이었습니까 tz : -330 ") 브라우저에서 API URL로 이동하려고하면됩니다. 따라서 올바르게 디버깅하지 못할 수도 있습니다. 그럼에도 불구하고 요청 헤더 설정과 관련하여 Android 코드가 올바르게 표시됩니다. 과거에는 Map headers = new ArrayMap <>()을 사용했습니다. 차이가 있다고 생각하지는 않습니다. 내가 사용하려고하는 서비스에 대한 API 문서와 함께 두 번 확인해 보겠습니다. –
Brian
@이 문제에 대한 해결책을 추가 하시겠습니까? –