java - 为什么我从浏览器获得了正确的 URL 响应,但 Android 的 "HttpGet"中却是空的?

标签 java android http http-get

我正在编写一个 Android 应用程序,它在服务器上使用基于 REST 的 API。到目前为止,使用 HttpGet 登录工作正常=我发送凭据,它向我发送回包含 session ID 或失败的 JSON 响应对象。然后我开始使用另一个 get api(这个 API 传递了 sessionid),我得到的响应看起来像一个有效的“200 - Ok”,但响应正文不包含任何内容 - 0 文本。

如果我采用相同的 URL 并将其放入浏览器中,我会得到我期望在浏览器窗口中显示的所有 JSON 文本。那么浏览器请求/响应和 HttpGet 有什么区别呢?关于为什么我的 HttpGet 可能返回“有效”的任何线索?

最佳答案

我也遇到了同样的问题。设置用户代理解决了我的问题:

HttpParams params = new BasicHttpParams();  
...
params.setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71");

关于java - 为什么我从浏览器获得了正确的 URL 响应,但 Android 的 "HttpGet"中却是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3520197/

相关文章:

c++ - native IIS7.5 模块未运行

java - 将 Cloud Firestore 时间戳转换为可读日期

java - 克隆 vector 时无法摆脱 Java 警告

java - 异步运行方法并能够查看其状态的最简单方法是什么?

android - 类转换异常对话框android

android - 从 ListView 中的 OnItemLongClickListener 启用拖动排序 ListView 时出现 NullPointerException

java - 查找整数数组中的最大数字

android - Google Play开发者控制台即使在更新Cordova版本后仍显示警报

java - 在多个类中重用 Asynctask

c++ - 从主机向在 VirtualBox Linux 机器上运行的服务器发送 http 请求