繁体   English   中英

HttpResponse在Android和Java中有所不同

[英]HttpResponse differs in Android and Java

我正在寻找帮助! 我有一些执行服务器身份验证并从服务器检索响应的代码。 当我在Java项目的eclipse中执行它时,我得到了reddirrect响应,例如:

<html><head><meta http-equiv="refresh" content="0;url=SiteIamLoggingPageURL/"/></head></html>

但是,当我在我的android应用中执行相同的代码时,我得到的响应等于登录失败的情况。

HttpPost post = new HttpPost(loginPageAdress);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
//nameValuePairs.add(new BasicNameValuePair("remember", "1"));
nameValuePairs
        .add(new BasicNameValuePair("email", "email"));
nameValuePairs.add(new BasicNameValuePair("password", "password"));

post.setEntity(new UrlEncodedFormEntity(nameValuePairs, "utf-8"));
StringBuilder stringBuilder = new StringBuilder();

HttpResponse response = client.execute(post, httpContext);
BufferedReader rd = new BufferedReader(new InputStreamReader(response
        .getEntity().getContent(), "UTF-8"));
String line = "";
while ((line = rd.readLine()) != null) {
    stringBuilder.append(line).append("\n");
}
System.out.println(stringBuilder.toString());

问题是什么? oo谢谢您的时间!

听起来好像您忘了添加

 <uses-permission android:name="android.permission.INTERNET" />

在AndroidManifest.xml中。 看看这个教程

  1. 如果这是您的身份验证代码,则必须通过标题而不是通过HTML刷新元标记使用重定向。 服务器应发出位置:http:/authenticated.jsp fe
  2. 要检查实际情况,请使用Wireshark。 那你就不再瞎了。 此处-来自Android的请求,此处来自服务器的答案。 这是一个非常有用的工具,花一些时间来处理它。

可能是因为您没有在单独的Thread上执行HTTP请求。 在这里阅读有关此内容的更多信息:

为什么冰淇淋三明治会崩溃您的应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM