W moim Android app Muszę zadzwonić do usługi internetowej, która wygląda jak tenWysyłanie informacji uwierzytelniania z żądaniem siatkówki
http://mywesite.com/demo/mob/getmenubycategory/1
Używam woleja wysłać żądanie, ale wynik jest VolleyError 401
. Nadpisałem metodę getParams()
, aby dodać nagłówek. ale to nie działa. Oto mój kod.
RequestQueue requestQueue = volleySingleton.getRequestQueue();
requestQueue.add(new JsonObjectRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e(TAG, "onResponse = \n " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "response error \n" + error.networkResponse.statusCode);
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
try {
Map<String, String> map = new HashMap<String, String>();
String key = "Authorization";
String encodedString = Base64.encodeToString(String.format("%s:%s", "USERNAME", "Password").getBytes(), Base64.NO_WRAP);
String value = String.format("Basic %s", encodedString);
map.put(key, value);
return map;
} catch (Exception e) {
Log.e(TAG, "Authentication Filure");
}
return super.getParams();
}
});
Kiedy korzystam z przeglądarki, wyświetla się okno dialogowe umożliwiające wprowadzenie mojej nazwy użytkownika i hasła. Jak mogę wysłać nazwę użytkownika i hasło z prośbą za pomocą salwy. Każda pomoc w rozwiązaniu tego problemu zostanie doceniona.
Czy masz jakiś dziennik błędów? – Sree
nie jest to po prostu logowanie 401 w 'onErrorResponse (błąd VolleyError)' – Sony
czy próbujesz wydrukować ten "błąd"? – Sree