【问题标题】:LoopJ AndroidAsyncHttp and request cookiesLoopJ AndroidAsyncHttp 和请求 cookie
【发布时间】:2013-07-24 12:08:47
【问题描述】:

关于 LoopJ AndroidAsyncHttp examples 我提出这样的获取请求:

    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?

关于documentation 客户端有这些方法签名:

 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 的示例,我会很高兴。

【问题讨论】:

  • 您在设置 client.setCookieStore(myCookieStore) 时已经添加了 cookie。只需确保在 client.get() 之前添加它们

标签: android android-async-http


【解决方案1】:

由于您要创建自己的 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 的说明进行操作。

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

【讨论】:

    猜你喜欢
    • 2012-12-25
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多