尝试在php中使用get变量调用URL时禁止403

时间:2013-10-17 16:59:20

标签: php android url utf-8 encode

我正在尝试从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禁用错误。

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

3 个答案:

答案 0 :(得分:0)

即使使用标准桌面浏览器,该URL也会返回403(FORBIDDEN)。它与Android无关。问题在于服务器/托管配置。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

任何处理此类问题的Android应用程序的用户都可以使用POST请求,例如:

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