java - 通过 Java 创建 HTTP GET 请求时遇到问题
问题描述
目前我正在尝试创建一个 HTTP GET 请求,分配多个参数,然后从 GET 请求中读取纯文本文件输出。我目前正在尝试使用的是提供 Java 的 HTTPClient 库,我将在下面附上相关代码以及我遇到的当前错误。
“announceURL”是我试图将请求发送到的 url。下面我将添加一个我正在尝试实现的示例。
谢谢!
解决方案
你有没有考虑过使用 Apache HttpClient
?下面附加的代码片段似乎适用于您提到的端点。希望这可以帮助。
PS:您必须将此库作为 Maven 依赖项添加到您的 pom.xml 中。链接在这里。
import org.apache.commons.io.IOUtils;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
public class API {
public static void main(String[] args) throws IOException, URISyntaxException {
HttpGet request = new HttpGet("http://mirror.rackspace.com/archlinux/iso/2019.12.01");
URI uri = new URIBuilder(request.getURI())
.setParameter("info_hash", "foo")
.setParameter("peer_id", "bar")
.build();
request.setURI(uri);
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = httpClient.execute(request);
InputStream input = response.getEntity().getContent();
String content = IOUtils.toString(input);
System.out.println(content);
}
}
回复:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /archlinux/iso/2019.12.01</title>
</head>
<body>
<h1>Index of /archlinux/iso/2019.12.01</h1>
<ul><li><a href="/archlinux/iso/"> Parent Directory</a></li>
<li><a href="arch/"> arch/</a></li>
<li><a href="archlinux-2019.12.01-x86_64.iso"> archlinux-2019.12.01-x86_64.iso</a></li>
<li><a href="archlinux-2019.12.01-x86_64.iso.sig"> archlinux-2019.12.01-x86_64.iso.sig</a></li>
<li><a href="archlinux-2019.12.01-x86_64.iso.torrent"> archlinux-2019.12.01-x86_64.iso.torrent</a></li>
<li><a href="archlinux-bootstrap-2019.12.01-x86_64.tar.gz"> archlinux-bootstrap-2019.12.01-x86_64.tar.gz</a></li>
<li><a href="archlinux-bootstrap-2019.12.01-x86_64.tar.gz.sig"> archlinux-bootstrap-2019.12.01-x86_64.tar.gz.sig</a></li>
<li><a href="md5sums.txt"> md5sums.txt</a></li>
<li><a href="sha1sums.txt"> sha1sums.txt</a></li>
</ul>
Rackers - More on this mirror here: https://rax.io/mirrorfaq
</body></html>
推荐阅读
- arrays - node express api中如何接受不同的xml格式?
- c# - 将 IConfigurationSection 转换为 IOptions
- ruby-on-rails - 黄瓜测试按钮按下并且没有成功更新页面
- ms-access - 如何在 ms Access 2007 组合框中选择单个项目或所有项目
- http - 为什么我们在 websocket 握手响应中使用 \n\r ?
- android - Firebase 在应用消息传递实现中与 gradling 相关的编译错误
- excel - 网页抓取到 Excel 文件中
- laravel - Laravel 在 intersect 方法之上分页
- java - 预定注解和自定义 StringResolver
- java - JSVC re-exec 需要使用绝对或相对路径执行