2011-11-18 9 views
7

Sto tentando di connettersi a un server drupal. Sono stato in grado di farlo in passato ma gli sviluppatori di drupal ora mi richiedono di aggiungere un altro cookie. Il server non registra il cookie che sto tentando di inviare qui sotto. Qualcuno può capire perché?Il server non riconosce il cookie dal telefono Android

public static void maybeCreateHttpClient() { 
    if (mHttpClient == null) { 
     mHttpClient = new DefaultHttpClient(); 
     final HttpParams params = mHttpClient.getParams(); 
     HttpConnectionParams.setConnectionTimeout(params, 
      REGISTRATION_TIMEOUT); 
     HttpConnectionParams.setSoTimeout(params, REGISTRATION_TIMEOUT); 
     ConnManagerParams.setTimeout(params, REGISTRATION_TIMEOUT); 



     BasicCookieStore cookieStore = new BasicCookieStore(); 
     ClientCookie cookie = new BasicClientCookie("aml", key); 

     cookieStore.addCookie(cookie); 

     localContext = new BasicHttpContext(); 
     localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); 


    } 
} 

risposta

5

Si scopre che, non ho bisogno di usare cookie, cookstore o httpcontent. Per quanto posso capire questi sono principalmente utilizzati per i cookie gestiti provenienti dal server.

sono riuscito a risolvere il mio problema impostando un colpo di testa in questo modo

String key = "whatever"; 

    post.addHeader("Cookie", "aml=" + key); 

Questo può essere utilizzato su HttpPost, httpget o httput.

Mi ci sono voluti alcuni giorni per una soluzione così semplice. Spero che aiuti qualcun altro fuori

+0

che avrebbe senso dato che i cookie _ sono solitamente provenienti dal server, vero? – njzk2

+0

beh, sì, l'ID della sessione e il nome della sessione sono ma l'aml che sto inviando non lo è. Il problema era che il server non riconosceva i cookie separati quando Android li stava gestendo. Quindi ho bisogno di inviarli in un modo specifico. Con una virgola che li separa piuttosto che un punto e virgola. – jiduvah

-1

Oh, beh, se stai cercando il motivo per cui i cookie non sono stati aggiunti, non hai ricevuto o aggiunto il cookie dal client http. Dovresti ottenere il deposito dei cookie dal client, aggiungere i cookie e quindi eseguire la richiesta.

+0

Ma in tal caso invierebbe i cookie che aveva già ricevuto dal server. Questo è l'intero problema. – jiduvah

Problemi correlati