Android:使用来自HttpPost的cookie用于HttpGet的示例

时间:2010-08-04 16:44:48

标签: android

我可以在这里使用示例:http://www.androidsnippets.org/snippets/36/index.html并成功获取网站的“HTTP / 1.1 OK”响应我发送HttpPost以及用户凭据。但是,我无法使用HttpGet进一步浏览此站点上的其他页面。

任何人都可以让我知道,出了什么问题。对不起 - 我对Java很新。

1 个答案:

答案 0 :(得分:6)

我的猜测是,当网站获得Post并将用户登录时,它会在响应中设置cookie以指示用户已登录,然后在后续Get上需要这些cookie。

您将需要执行以下操作(这是从较大的应用程序借来的,因此可能无法立即编译)

DefaultHttpClient mHttpClient = new DefaultHttpClient();
BasicHttpContext mHttpContext = new BasicHttpContext();
CookieStore mCookieStore      = new BasicCookieStore();        
mHttpContext.setAttribute(ClientContext.COOKIE_STORE, mCookieStore);

这会在HTTP上下文中设置一个cookie存储,然后在Get和Post上使用该上下文。例如......

HttpResponse response = mHttpClient.execute(mRequest, mHttpContext);

HTTP客户端将在响应中存储Cookie,并将其添加到请求中。