首页 > 后端开发 > php教程 > 为什么我的 Android 应用程序从 ByetHost 服务器接收 HTML 而不是 JSON?

为什么我的 Android 应用程序从 ByetHost 服务器接收 HTML 而不是 JSON?

Mary-Kate Olsen
发布: 2024-10-28 05:16:02
原创
358 人浏览过

Why is My Android App Receiving HTML Instead of JSON from a ByetHost Server?

ByetHost 服务器使用 JSON 字符串传递 HTML 值“检查您的浏览器”

问题
尝试时在 Android 上解析 JSON 字符串,而是返回 HTML 值。这个突然的问题会影响 ByetHost 服务器上托管的所有页面,而其他服务器上托管的页面可以正常工作。

解决方案

该问题的出现是由于 ByetHost 服务器实现了testcookie-nginx-module 安全反机器人措施。该模块执行两步验证过程:

  1. 对于第一个 HTTP 请求,模块返回 JavaScript 片段而不是预期的 JSON 响应。此代码片段会在客户端生成一个包含 AES 密钥的验证 cookie。
  2. 使用生成的 cookie 的后续 HTTP 请求允许访问所需的 JSON 响应。

步骤解决 Android 应用程序的问题

  1. 从 Web 浏览器获取 Cookie 密钥:

    • 访问 ByetHost URL在网络浏览器中。
    • 检查浏览器的 cookie 设置并记下“__test”cookie。
    • 从“__test”复制“内容”、“路径”和“过期”的值" cookie.
  2. 在 Android 应用中设置 Cookie:

在您应用的 HTTP 请求代码中添加 header下面包含“__test”cookie:

<code class="java">httpPost.addHeader("Cookie", "__test=THE_CONTENT_OF_YOUR_COOKIE_HERE; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/");</code>
登录后复制

将“THE_CONTENT_OF_YOUR_COOKIE_HERE”替换为步骤 1 中获取的“content”值。

通过这些更改,Android 应用程序将包含“ __test" cookie 在其 HTTP 请求中,允许它从 ByetHost 服务器访问所需的 JSON 响应。

以上是为什么我的 Android 应用程序从 ByetHost 服务器接收 HTML 而不是 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板