HttpClient 是 Java 中用于发送 HTTP 请求的库,以下是一个简单的 HttpClient 示例,展示了如何使用它发送 GET 和 POST 请求:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URI; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; public class HttpClientExample { private static final String USER_AGENT = "Mozilla/5.0"; public static void main(String[] args) throws Exception { HttpClient httpclient = new DefaultHttpClient(); // 发送 GET 请求 HttpGet httpget = new HttpGet("http://www.example.com"); httpget.addHeader("UserAgent", USER_AGENT); HttpResponse response = httpclient.execute(httpget); System.out.println("GET Response Status: " + response.getStatusLine().getStatusCode()); BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); // 发送 POST 请求 HttpPost httppost = new HttpPost("http://www.example.com"); httppost.addHeader("UserAgent", USER_AGENT); httppost.setEntity(new StringEntity("{"key":"value"}")); response = httpclient.execute(httppost); System.out.println("POST Response Status: " + response.getStatusLine().getStatusCode()); reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); } }
这个示例使用了 Apache HttpClient 库,首先创建一个DefaultHttpClient
实例,然后分别创建HttpGet
和HttpPost
对象来发送 GET 和 POST 请求,在发送请求之前,我们添加了一个 UserAgent 头,以便服务器知道我们的客户端类型,我们执行请求并打印响应状态码和响应内容。
注意:从 Java 11 开始,Apache HttpClient 不再包含在标准库中,需要单独添加依赖,如果你使用的是 Java 11 或更高版本,你需要将以下依赖添加到你的项目中(使用 Maven):
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency>
以上内容就是解答有关httpclient 源码的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1111860.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复