2011-06-01 20 views
0

有人請賜教,我可能會從我的Andriod應用程序發送Drupal登錄cookie信息返回到我的Drupal站點?Android to Drupal cookie轉移

下面是個代碼,我用我的嘗試:

HttpResponse response; 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost  = new HttpPost("http://test2.icerge.com/testpoint/node/"); 
     **httpPost.addHeader("Cookie: " + USERPREFERENCES.getString(COOKIE_NAME, ""), " "+USERPREFERENCES.getString(COOKIE_VALUE, ""));** 

Toast.LENGTH_LONG).show(); // TODO自動生成方法存根 try { List nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair(「node [title]」,「sample node from app」)); nameValuePairs.add(new BasicNameValuePair(「node [type]」,「story」)); nameValuePairs.add(new BasicNameValuePair(「node [body]」,「sample app node body content」)); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

   response = httpClient.execute(httpPost); 

       Log.i("SEEMS TO WORK", response.toString()); 
       Log.v("CODE", httpPost.getRequestLine().toString() + " - " + response.toString()); 

      }catch(Exception e){ 
       Log.e("HTTP-ERROR: node creation", e.toString()); 
      } 

我使用「httpPost addHeader」行來發送我的cookie,但nojoy。

有人可以請我指出這個問題嗎?

回答

1

我不相信默認情況下HttpClient管理cookie。所以,你需要建立一個cookie存儲,將其綁定的HTTP上下文,然後使用員額的背景下,這樣的

mHttpContext = new BasicHttpContext(); 
    mCookieStore = new CookieStore();  
    mHttpContext.setAttribute(ClientContext.COOKIE_STORE, mCookieStore); 
    ... 
    HttpResponse response = mHttpClient.execute(mRequest, mHttpContext); 

一旦到位,從Drupal的網站發送的響應任何cookie會自動包含在隨後的請求中。

如果你有興趣看到由的CookieStore持有什麼餅乾,你總是可以做

List<Cookie> cookies = mCookieStore.getCookies(); 
+0

我仍然無法獲取發送到我的服務器上保存cookie。我在上面的答案中添加了我的代碼調整,因此我可以粘貼代碼。 – sisko 2011-06-04 16:07:39