代码之家  ›  专栏  ›  技术社区  ›  divyenduz

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

  •  0
  • divyenduz  · 技术社区  · 11 年前

    我正试图从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 回复  |  直到 11 年前
        1
  •  0
  •   rasmusgreve    11 年前

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

    <?php 
    $curl = curl_init('http://www.example.com'); 
    $result = curl_exec($curl); 
    echo $result; 
    ?>
    
        2
  •  0
  •   Valerio Santinelli    11 年前

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

        3
  •  0
  •   divyenduz    11 年前

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

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

    任何在Android应用程序上工作的人都可以简单地使用POST请求,如:

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