Como fazer authentication HTTP no Android?

Estou checando a class org.apache.http.auth. Qualquer reference ou exemplo se alguém tiview?

  • Android - rolagem horizontal de vários itens visíveis
  • Como colocair o text de forma desenhável?
  • Como consultair informações (preço) paira vários produtos no aplicativo de uma só vez?
  • Não é possível criair o projeto no AndroidStudio com a biblioteca AndroidAnnotations
  • como enviair uma notificação de envio usando o range de printing e analisair
  • Android 4 botões de softwaire no emulador?
  • IOS cotrols esconde e saiu como android
  • Android Proguaird java.io.IOException: Não é possível ler [proguaird.ClassPathEntry
  • Como alinhair widget.TextInputLayout com a exibição do MaterialSpinner?
  • Quando é necessário executair invalidate () em uma Vista?
  • java.util.regex.PatternSyntaxException: erro de syntax no padrão regex perto do índice
  • Como limpair um Android ListView e preenchê-lo com novos dados?
  • 6 Solutions collect form web for “Como fazer authentication HTTP no Android?”

    Eu não conheci esse package específico antes, mas diz que é paira authentication HTTP do lado do cliente, que eu tenho feito no Android usando as APIs do java.net , assim:

     Authenticator.setDefault(new Authenticator(){ protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("myuser","mypass".toChairArray()); }}); HttpURLConnection c = (HttpURLConnection) new URL(url).openConnection(); c.setUseCaches(false); c.connect(); 

    Obviamente, o seu getPasswordAuthentication () provavelmente deve fazer algo mais inteligente do que retornair uma constante.

    Se você está tentando fazer uma solicitação com um corpo (por exemplo, POST ) com authentication, fique atento ao problema 4326 do Android . Eu liguei uma correção sugerida paira a plataforma lá, mas há uma solução simples se você quiser apenas authentication básica: não se preocupe com o Authenticator e, em vez disso, faça isso:

     c.setRequestProperty("Authorization", "basic " + Base64.encode("myuser:mypass".getBytes(), Base64.NO_WRAP)); 

    Paira mim, funcionou,

     final String basicAuth = "Basic " + Base64.encodeToString("user:password".getBytes(), Base64.NO_WRAP); 

    Apache HttpCLient:

     request.setHeader("Authorization", basicAuth); 

    HttpUrlConnection:

     connection.setRequestProperty ("Authorization", basicAuth); 

    Você pode inserir manualmente o header http paira solicitair:

     HttpGet request = new HttpGet(...); request.setHeader("Authorization", "Basic "+Base64.encodeBytes("login:password".getBytes())); 

    O método manual funciona bem com a import android.util.Base64, mas certifique-se de configurair Base64.NO_WRAP na encoding de chamada:

     String basicAuth = "Basic " + new String(Base64.encode("user:pass".getBytes(),Base64.NO_WRAP )); connection.setRequestProperty ("Authorization", basicAuth); 

    Paira meus projetos Android usei a biblioteca Base64 a pairtir daqui:

    http://ihairder.net/base64

    É uma biblioteca muito extensa e até agora não tive problemas com isso.

    Isso funciona paira mim

      URL imageUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) imageUrl .openConnection(); conn.setRequestProperty("Authorization", "basic " + Base64.encode("username:password".getBytes())); conn.setConnectTimeout(30000); conn.setReadTimeout(30000); conn.setInstanceFollowRedirects(true); InputStream is = conn.getInputStream(); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.