【问题标题】:403 forbidden when trying to call a URL using get variable in php尝试使用 php 中的 get 变量调用 URL 时禁止 403
【发布时间】:2026-01-24 01:20:05
【问题描述】:

我正在尝试从 Java (Android) 发出请求,以将 URL 发送到托管在 Web 服务器上的 php 文件。 wv.loadUrl(baseurl + "?url=" + URLEncoder.encode(url,"UTF-8"));

其中 wv 是网络视图。

使用上述命令生成的url是: http://divu.in/TheRedDevil/readhtml/index.php?url=http://www.manutd.com/en/News-And-Features/Football-News/2013/Oct/jimmy-nicholl-knows-jonny-evans-will-battle-for-place.aspx

我还尝试使用浏览器手动打开此链接,但在这两种情况下我都收到了 403 禁止错误。

这是托管安全问题还是我做错了什么? 怎么解决?

【问题讨论】:

  • 确保您的互联网正常工作并且您的网址正确。
  • 如果您无法手动打开它,错误不在 PHP 中,而是在服务器配置中。
  • divu.in中index.php的代码是什么?您如何从 manutd.com 网站捕获内容?

标签: php android url utf-8 encode


【解决方案1】:

正如其他人所说,这不是 Android 的问题,而是您的 PHP 代码或主机的问题。 您的主机似乎以某种方式不允许加载外部文件。 如果您使用 file_get_content 加载外部内容,您可以尝试使用 curl - 也许他们不会阻止。

<?php 
$curl = curl_init('http://www.example.com'); 
$result = curl_exec($curl); 
echo $result; 
?>

【讨论】:

  • 是主机。我得到了确认,谢谢.. 最后使用 POST 请求来完成工作。
【解决方案2】:

即使使用标准桌面浏览器,该 URL 也会返回 403 (FORBIDDEN)。跟安卓没关系。问题出在服务器/主机配置上。

【讨论】:

  • 是的,这对我有帮助。我有点想确保我没有做一些愚蠢的事情。谢谢。
【解决方案3】:

从我过去一个小时所做的所有研究中,我意识到这是 hostgator.com(提供者)应用的 apaches mod_security 设置。

因此,对于这个特定的应用程序,我使用 post 将数据从 android 应用程序发送到服务器,它就像一个魅力。

任何在 Android 应用上工作的人都可能遇到此类问题,可以简单地使用 POST 请求,例如:

wv.postUrl(baseurl,EncodingUtils.getBytes("url=" + url, "utf-8"));

【讨论】:

    最近更新 更多