Autore Topic: Httpclient & Server Name Indication (SNI)  (Letto 366 volte)

Offline wlf

  • Utente normale
  • ***
  • Post: 319
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Httpclient & Server Name Indication (SNI)
« il: 12 Febbraio 2015, 10:32:40 CET »
0
Salve ragazzi, stavo cercando una libreria o una tecnica che supporti il SNI. Ho verificato che Loopj non ha tale supporto quindi contattando un server con più certificati SSL ritorna sempre il certificato di default e non quello dell'host server contattato.

Ho provato anche a dare un occhio al seguente link ma non è risolutivo, non posso utilizzare HttpsURLConnection, parto dalle API level 14, non ho garanzia che i dispositivi utilizzati siano tutti Android Stock. :(

Qualcuno che è imbattuto in questa problematica ha idea di come sia possibile risolverla?
« Ultima modifica: 12 Febbraio 2015, 12:11:25 CET da wlf »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Httpclient & Server Name Indication (SNI)
« Risposta #1 il: 12 Febbraio 2015, 12:44:42 CET »
+1
Guarda se OKHTTP fa al caso tuo, dovrebbe essere il top delle librerie.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline wlf

  • Utente normale
  • ***
  • Post: 319
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Httpclient & Server Name Indication (SNI)
« Risposta #2 il: 13 Febbraio 2015, 17:06:24 CET »
0
Guarda se OKHTTP fa al caso tuo, dovrebbe essere il top delle librerie.

Grazie, sembra fare al caso mio, dice espressamente
Citazione
OkHttp initiates new connections with modern TLS features (SNI, ALPN), and falls back to TLS 1.0 if the handshake fails.

Però ho qualche difficoltà con una POST in cui passo un sacco di parametri (setContentCharset, setVersion, Encoding, etc) ed i parametri della post (ArrayList<NameValuePair>) vengono inviati in UTF-8. Non ho trovato esempi per questo tipo di utilizzo. :(

--- edit ---

Sembrerebbe che sia riuscito con gli header e la post ad inviare il tutto; ma ora ho dei grossi problemi con la response. Prima nella response il server mi restituiva dei dati, ora invece sia in response.body() che response.message() non mi ritrovo la risposta del server. :(
Ho controllato ma sembra non esserci la mia risposta dentro alla response. :(
Sarebbe perfetto per SNI ma se non mi restituisce la response non potrò utilizzarlo ...
C'è magari qualche accorgimento che ora mi sfugge per leggere la response del server? Grazie.

--- edit ---

Trovato, sembra che dalla response bisogna leggere l'inputstream response.body().byteStream().  ;)

Adesso ho scritto tutto in modo "primitivo"; sarebbe utile un bell'esempio ... ;)
« Ultima modifica: 16 Febbraio 2015, 16:20:16 CET da wlf »