Передача файлов cookie из Android в Drupal - PullRequest
0 голосов
/ 02 июня 2011

Может кто-нибудь сообщить мне, как я могу отправить Drupal информацию о cookie-файлах для входа из моего Android приложения обратно на мой Drupal сайт?

Ниже приведен код, который я использую в своих попытках:

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 Auto-generated method stub
try{
    List<NameValuePair> nameValuePairs  =   new ArrayList<NameValuePair>();
    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-файла, но без удовольствия.

Может кто-нибудь направить меня по этому вопросу, пожалуйста?

1 Ответ

1 голос
/ 02 июня 2011

Я не верю, что HttpClient управляет файлами cookie по умолчанию. Таким образом, вам нужно настроить хранилище cookie, связать его с HTTP-контекстом, а затем использовать контекст в POST, например,

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

Как только это будет сделано, любые куки, отправленные с сайта Drupal в ответах, будут автоматически включены в последующие запросы.

Если вам интересно узнать, какие куки хранятся в CookieStore, вы всегда можете сделать

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