5

关于 LoopJ AndroidAsyncHttp示例,我提出了这样的获取请求:

    final TextView text = (TextView) findViewById(R.id.textView);
    AsyncHttpClient client = new AsyncHttpClient();
    client.get("http://example.com/mypage/", new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(String response) {
            text.append(response);
        }
    });

我还添加了 cookie:

    PersistentCookieStore myCookieStore = new PersistentCookieStore(this);
    client.setCookieStore(myCookieStore);
    BasicClientCookie newCookie = new BasicClientCookie("id", 17882);
    myCookieStore.addCookie(newCookie);

但是在发出 GET 请求时,如何在请求对象中发送我的 cookie?

关于文档客户端具有以下方法签名:

 void   get(Context context, String url, AsyncHttpResponseHandler responseHandler) 
 void   get(Context context, String url, Header[] headers, RequestParams params, AsyncHttpResponseHandler responseHandler) 
 void   get(Context context, String url, RequestParams params, AsyncHttpResponseHandler responseHandler) 
 void   get(String url, AsyncHttpResponseHandler responseHandler) 
 void   get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) 

如果您能举一个在 GET 请求中发送持久 cookie 的示例,我会很高兴。

4

1 回答 1

3

由于您正在创建自己的PersistentCookieStore实例,因此只需使用myCookieStore您创建的实例。就像@robotoaster 说在 get() 之前添加它。

或者

做这个

HttpContext httpContext = httpClient.getHttpContext();
CookieStore cookieStore = (CookieStore) httpContext.getAttribute(ClientContext.COOKIE_STORE);

然后按照http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/CookieStore.html中的说明进行操作。

资料来源:loopj for android 中的 Cookies (直接来自 loopj)

于 2013-08-06T05:58:06.490 回答