LoopJ AndroidAsyncHttp并请求cookie

tra*_*nte 5 android android-async-http

关于LoopJ AndroidAsyncHttp 示例,我发出这样的get请求:

    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);
        }
    });
Run Code Online (Sandbox Code Playgroud)

我还添加了cookies:

    PersistentCookieStore myCookieStore = new PersistentCookieStore(this);
    client.setCookieStore(myCookieStore);
    BasicClientCookie newCookie = new BasicClientCookie("id", 17882);
    myCookieStore.addCookie(newCookie);
Run Code Online (Sandbox Code Playgroud)

但在提出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) 
Run Code Online (Sandbox Code Playgroud)

如果你能举一个在GET请求中发送持久性cookie的例子,我会很高兴.

Sla*_*ast 3

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

或者

做这个

HttpContext httpContext = httpClient.getHttpContext();
CookieStore cookieStore = (CookieStore) httpContext.getAttribute(ClientContext.COOKIE_STORE);
Run Code Online (Sandbox Code Playgroud)

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

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