4

问题如下:
我使用httpclient将登录数据发布到服务器。

在我的桌面上使用带有实时标头的 firefox 时,服务器将我重定向到 url2 witk 302,然后使用 302 重定向到 url3,然后我得到 200 ok。在android中,我得到了相同的登录页面和200 OK。

然后我禁用自动重定向处理得到响应并看到 302 重定向,但是

" String location = response.getHeaders("Location")[0].toString();" 给了我相同的登录页面 url,而不是来自 firefox 的那个。

我不知道为什么会这样。

代码:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(uri[0]);
HttpResponse response;
String responseString = null;

HttpParams params = httpclient.getParams();
HttpClientParams.setRedirecting(params, false);

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

// Adding namvalue pairs here - adding correct i'm sure

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

response = httpclient.execute(httppost);
StatusLine statusLine = response.getStatusLine();

if (statusLine.getStatusCode() == HttpStatus.SC_OK){                    
       ByteArrayOutputStream out = new ByteArrayOutputStream();
       response.getEntity().writeTo(out);
       out.close();
       responseString = out.toString();
} else{
       if (statusLine.getStatusCode() == HttpStatus.SC_MOVED_TEMPORARILY)
       {
          String location = response.getHeaders("Location")[0].toString();

       }
       response.getEntity().getContent().close();     
}      

火狐标头:

在此处输入图像描述

我得到的是: location= /login/

4

0 回答 0