403 在尝试使用 PHP 中的 get 变量调用 URL 时被禁止


403 forbidden when trying to call a URL using get variable in php

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

其中 wv 是 Web 视图。

使用上述命令生成的 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 禁止错误。

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

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

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

该 URL 返回 403(禁止使用),即使使用标准桌面浏览器也是如此。这与Android无关。问题出在服务器/托管配置上。

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

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

任何在Android应用程序上工作的人都面临这样的问题,可以简单地使用POST请求,例如:

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