Comment obtenir des cookies dans HttpUrlConnection en utilisant CookieStore?
Dans mon Application
classe, je ne les suivants:
public class MyApplication extends Application {
private static HttpURLConnection conn = null;
public static CookieStore cookieStore;
public static HttpContext localContext;
public static DefaultHttpClient client = new DefaultHttpClient();
@Override
public void onCreate() {
//TODO Auto-generated method stub
super.onCreate();
CookieSyncManager.createInstance(this);
cookieStore = new BasicCookieStore();
localContext = new BasicHttpContext();
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
}
...
}
Et j'ai une connexion en Runnable
parties:
HttpURLConnection conn = null;
URL url;
try {
url = new URL(requestUrl);
conn = (HttpURLConnection) url.openConnection();
if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {
System.setProperty("http.keepAlive", "false");
}
conn.setConnectTimeout(8000);
conn.setRequestMethod(method);
conn.setInstanceFollowRedirects(false);
conn.setRequestProperty("Content-Type","application/x-www-form-urlendcoded");
MyApplication app = (MyApplication) mContext.getApplicationContext();
*******************************************
if(app.cookieStore.getCookies()!=null){
conn.setRequestProperty("Cookie", app.cookieStore.getCookies().toString());
Log.d("tag", "cookie get " + cookie.getCookie(mContext.getString(R.string.host_url)));
}
********** this part not work **********
Map m = conn.getHeaderFields();
if (m.containsKey("Set-Cookie")) {
String cookies = "";
Collection c = (Collection) m.get("Set-Cookie");
for (Iterator i = c.iterator(); i.hasNext();) {
cookies += (String) i.next() + ",";
}
cookie.setCookie(mContext.getString(R.string.host_url), cookies);
Log.d("tag", "cookie set " + cookies);
}
} catch(...) { ... }
- Je obtenir Cookiee
en utilisant cookieStore
et également créer des cookies, mais je ne reçois rien, il retourne null
.
Comment utiliser CookieStore
?
Quelques exemples et la réponse donner ceci:
List<Cookie> cookies = app.client.getCookieStore().getCookies();
Il renvoie également null
pour moi.
OriginalL'auteur sique | 2012-05-30
Vous devez vous connecter pour publier un commentaire.
L'utiliser pour créer des cookies.
Tout d'abord, définissez upcookieManager:
Prochain, l'ensemble des cookies pour HttpUrlConnection par setRequestProperty()
OriginalL'auteur Javier Sivianes
set cookie :
obtenir cookie :
OriginalL'auteur HenryChuang