【问题标题】:Imitiating cURL with Java用 Java 模仿 cURL
【发布时间】:2020-01-03 22:19:53
【问题描述】:

我想用 Java(准确地说是 java 7)获取页面的内容。 当我使用浏览器进入该网站时,我得到的是关于 cookie、个性化广告等的模式/弹出窗口,当我使用例如:

URL url = new URL(v1.getUrl());
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
InputStream is = con.getInputStream();

我偶然发现在 Bash 中使用 cURL 我得到了该站点的“正确”输出。和 curl URL 我在没有这个模式的情况下得到响应。当我在 Java 代码中使用 curl 时,也会发生同样的事情:

ArticleExtractor.getInstance().getText(new InputStreamReader(new ProcessBuilder(("curl "+url).split(" ")).start().getInputStream())).

有没有办法不使用curl 并在Java 中获得相同的结果?

【问题讨论】:

    标签: java curl get httprequest


    【解决方案1】:

    尝试在您的con.setRequestMethod() 之后添加这一行。

    con.setRequestProperty("User-Agent", "curl/7.65.0");
    

    如果这有效,则意味着 HTTP 服务器正在为 curl 与其他浏览器提供不同的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多