In realtà ho registrato una sessione nella mia WebView. Ma io uso anche httpclient per inviare e ottenere dati dal web. Ho visto su Internet che è impossibile ottenere il contenuto di una WebView, quindi ho dovuto usare il mio httpclient per ottenere i dati da un webservice.ANDROID: condivisione sessione tra Webview e httpclient
Il problema è che questo servizio Web utilizza sessioni ... e la mia sessione è nella mia WebView, quindi httpclient non ce l'ha e non posso accedere al contenuto del webservice.
Vedo molti post su questo problema ma non ho capito la soluzione.
Ecco quello che ho fatto sul mio onPageStarted:
CookieManager mgr = CookieManager.getInstance();
Log.i("URL", url);
Log.i("Cookie",mgr.getCookie("mywebsite.com"));
String cookie_string = mgr.getCookie("mywebsite.com");
if(cookie_string.length() > 1) {
Data.instance().getPref().edit().putString("cookie",cookie_string).commit();
}
ho visto che ho questo tipo di cose, quindi spero che coloro che comprendono sessione di troppo: (tolgo il numero)
__utma=......(number)......;
__utmc=number;
__utmz=number.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
wt3_eid=%number%number;
wt3_sid=%number
Quindi non so cosa fare per impostare questo cookie nel mio httpclient. Provo che, senza successo:
HttpClient client = new DefaultHttpClient();
BasicCookieStore cookieStore = new BasicCookieStore();
String login_cookie_string = Data.instance().getPref().getString("cookie", "");
String[] cookie_parts = null;
if(login_cookie_string.length()> 0)
{
//debug_view.setText(login_cookie_string);
Log.d("COOKIE", login_cookie_string);
cookie_parts = login_cookie_string.split(";");
for(int t=0;t < cookie_parts.length;t++)
{
String[] cookieContent = cookie_parts[t].split("=");
Cookie login_cookie = new BasicClientCookie(cookieContent[0],cookieContent[1]);
((BasicClientCookie) login_cookie).setDomain("mywebsite.com");
cookieStore.addCookie(login_cookie);
}
}
((AbstractHttpClient) client).setCookieStore(cookieStore);
Instradare il traffico attraverso un proxy come WebScarab o Fiddler per scoprire le differenze rimanenti tra le richieste WebView e httpclient. – Robert