5

Nasıl yapılır? Http Kimlik Doğrulaması API için Volley kütüphanesi? Http Kimlik doğrulama, volley kitaplığı kullanarak android

Ben Süre İstisna & Boş işaretçisi exception..Please seçtiğiniz voleybolu isteği sınıfını uzatın önerileri

String url = "Site url"; 
String host = "hostName"; 
int port = 80; 
String userName = "username"; 
String password = "Password"; 
DefaultHttpClient client = new DefaultHttpClient(); 
AuthScope authscope = new AuthScope(host, port); 
Credentials credentials = new UsernamePasswordCredentials(userName, password); 
client.getCredentialsProvider().setCredentials(authscope, credentials); 
HttpClientStack stack = new HttpClientStack(client); 
RequestQueue queue = Volley.newRequestQueue(VolleyActivity.this, stack); 
+0

Bunu [droidQuery] kullanabilirsiniz http://bit.ly/droidQuery:

isteğinizin sınıfına

kod aşağıdaki gibi görünecektir içinde getHeaders yöntemini geçersiz gerekir Bunu yapmak için) kimlik doğrulama ile uyumsuz istekleri gerçekleştirmek için. Bir kullanıcı adı eklemek için "AjaxOptions" [belge] 'ye (http://phil-brown.github.io/droidQuery/doc/self/philbrown/droidQuery/AjaxOptions.html#username (java.lang.String)) bakın ve Bir istek için şifre. – Phil

cevap

4

sağlamak ve getHeaders üzerine atar .... aşağıdaki kodu çalıştı(). Orada kimlik bilgileri ile bir harita Return (headers.put ('Yetki', 'authinfo ...'))

9

Temel HTTP yetkilendirme sonraki başlığının benziyor: dXNlcjp1c2Vy kullanıcı

Authorization: Basic dXNlcjp1c2Vy 

olduğunu : Base64 biçimindeki parola dizesi, "Basic" sözcüğü yetkilendirme türü anlamına gelir.

Bu nedenle Yetkilendirme adlı istek üstbilgisini ayarlamanız gerekir. (

@Override 
public Map<String, String> getHeaders() { 
    Map<String, String> params = new HashMap<String, String>(); 
    params.put(
      "Authorization", 
      String.format("Basic %s", Base64.encodeToString(
        String.format("%s:%s", "username", "password").getBytes(), Base64.DEFAULT))); 
    return params; 
} 
+0

Bu adam çalışıyor. – omujeebr