我正在尝试从 Java (Android) 发出请求,以将 URL 发送到托管在 Web 服务器上的 php 文件。wv.loadUrl(baseurl + "?url=" + URLEncoder.encode(url,"UTF-8"));
其中 wv 是 Web 视图。
我还手动尝试使用浏览器打开此链接,在这两种情况下我都收到了 403 禁止错误。
是托管安全问题还是我做错了什么?如何解决?
我正在尝试从 Java (Android) 发出请求,以将 URL 发送到托管在 Web 服务器上的 php 文件。wv.loadUrl(baseurl + "?url=" + URLEncoder.encode(url,"UTF-8"));
其中 wv 是 Web 视图。
我还手动尝试使用浏览器打开此链接,在这两种情况下我都收到了 403 禁止错误。
是托管安全问题还是我做错了什么?如何解决?
正如其他人所说,这不是 Android 的问题,而是您的 PHP 代码或主机的问题。您的主机似乎以某种方式不允许加载外部文件。如果您使用 file_get_content 加载外部内容,您可以尝试使用 curl 代替 - 也许他们不会阻止它。
<?php
$curl = curl_init('http://www.example.com');
$result = curl_exec($curl);
echo $result;
?>
从我过去一个小时所做的所有研究中,我意识到这是 hostgator.com(提供商)应用的 apaches mod_security 设置。
因此,对于这个特定的应用程序,我使用 post 将数据从 android 应用程序发送到服务器,它就像一个魅力。
任何在 Android 应用程序上工作的人都可以简单地使用 POST 请求,例如:
wv.postUrl(baseurl,EncodingUtils.getBytes("url=" + url, "utf-8"));
即使使用标准桌面浏览器,该 URL 也会返回 403 (FORBIDDEN)。跟安卓没关系。问题在于服务器/主机配置。