403禁止在java中使用url但在浏览器中禁止使用url

时间:2017-03-01 15:00:27

标签: java

我在公司防火墙后面,但我可以在浏览器中启用和不启用代理设置的情况下将URL粘贴到我的浏览器中,并且可以正确检索数据。我不能在java中。

有什么想法吗?

代码:

 function obj_to_query(obj) {
      var parts = [];
      for (var key in obj) {
          if (obj.hasOwnProperty(key)) {

               for (var i = 0; i < obj[key].Keys.length; i++) {

                   if (encodeURIComponent(obj[key].FilterType) == 1) {
                        parts.push(encodeURIComponent("areas=" + obj[key].Keys[i]));
                      } 
                   else if (encodeURIComponent(obj[key].FilterType) == 2) {
                        parts.push(encodeURIComponent("categories=" + obj[key].Keys[i]));
                      } 
                   }
                }
            }

            return "?" + parts.join('&');
        }

错误:

 private static String getURLToString(String strUrl) throws IOException {
    // LOG.debug("Calling URL: [" + strUrl + "]");
    String content = "";

    URLConnection connection = new URL(strUrl).openConnection();
    connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
    connection.connect();
    BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), Charset.forName("UTF-8")));

    String inputLine;
    while ((inputLine = br.readLine()) != null) {
        content += inputLine;
    }

    br.close();

    return content;
}

注意:&#39;&#39;部分用于匿名化。

2 个答案:

答案 0 :(得分:1)

当你收到一个&#34; 403:Forbidden&#34;错误,这意味着您的Java代码可以访问该URL,但它缺少访问它所需的内容。

在浏览器中,按F12(开发人员/调试模式)并再次请求URL。检查正在发送的标头和Cookie。您很可能需要为您添加其中一个,以便能够接收所需的内容。

答案 1 :(得分:0)

添加“ User-Agent”标头已为我修复:

connection.setRequestProperty("User-Agent", "Mozilla/5.0");