Java 如何告诉android解析iam重定向到的页面的XML响应?

Java 如何告诉android解析iam重定向到的页面的XML响应?,java,android,httpclient,Java,Android,Httpclient,我试图在Android应用程序中解析XML响应。解析技术本身并不是问题所在,但是接收XML的过程使得使用普通方法很难做到这一点 详情如下: 我请求使用Android中的ApacheHttpClient创建一个xhtml网站。该网站位于JavaEE应用程序服务器上。我用请求用户名和密码给出了两个GET参数 该网站位于AS上的安全区域,因此首先AS将我转发到登录页面。loginpage从GET参数获取用户名和密码,并自动让我登录。如果登录凭据有效,我将被重定向到请求的XHTML页面。这就是我想用an

我试图在Android应用程序中解析XML响应。解析技术本身并不是问题所在,但是接收XML的过程使得使用普通方法很难做到这一点

详情如下: 我请求使用Android中的ApacheHttpClient创建一个xhtml网站。该网站位于JavaEE应用程序服务器上。我用请求用户名和密码给出了两个GET参数

该网站位于AS上的安全区域,因此首先AS将我转发到登录页面。loginpage从GET参数获取用户名和密码,并自动让我登录。如果登录凭据有效,我将被重定向到请求的XHTML页面。这就是我想用android SAX解析器解析的站点


但当我尝试这样做时,我能解析的唯一响应是登录页面,而不是页面。成功登录后,我被重定向到。有谁能告诉我,如何指示android apache http客户端在自动登录过程之后获取重定向页面的响应,以便稍后进行解析?

登录的用户存储在http会话中,该会话由名为JSSessionID的cookie标识。您需要确保在每个后续请求上以及重定向上都将获得的cookie传递回。否则,服务器会将重定向请求视为未授权,并将您重定向回登录页。

管理获得的cookies可以在您需要设置的帮助下完成,您需要在其中传递每个呼叫


通过以下博客条目找到我的解决方案:


刚刚将代码更新到当前的Apache客户端andere,它成功了。

我完全按照您所说的做了,但是每一个进一步的请求都会将我带回到登录页面。响应始终是login.jsp的布局。我调试了该项目,发现有一个cookie存储在sessionID中,但它表明身份验证方法不起作用。你在重定向上传递cookies是什么意思?我被服务器重定向了,那么现在如何传递cookie呢?
HttpClient httpClient = new DefaultHttpClient();
CookieStore cookieStore = new BasicCookieStore();
HttpContext httpContext = new BasicHttpContext();
httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
// ...

HttpResponse response1 = httpClient.execute(yourMethod1, httpContext);
// ...

HttpResponse response2 = httpClient.execute(yourMethod2, httpContext);
// ...