java - 用Java模拟cURL

标签 java curl get httprequest

我想用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中获得相同的结果?

最佳答案

尝试在 con.setRequestMethod() 之后添加此行。

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

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

关于java - 用Java模拟cURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59586048/

相关文章:

java - 如何向 JAXB 中的文本元素添加属性?

java - 隐藏静态方法是否有正当理由?

php - 将 unirest 转换为 curl

get - 不安全请求警告 : Unverified HTTPS request is being made in Robot Framework.

ruby-on-rails - 在 Rails 中使用 `JSON.decode` 的结果

java - 我可以使用闪存驱动器的名称作为其目录吗?

java - Spring Boot Thymeleaf 静态内容未加载

php - 结合 SSL/TLS (HTTPS) 的 HTTP 基本身份验证将用于对用户进行身份验证

curl - OTRS 通用接口(interface)(搜索票证)- URL 查询参数数组

java - 如何优雅地从 Map 中获取唯一元素