URI
URI(A Uniform Resource Identifier) 是一个紧凑的字符串用来标示抽象或物理资源, 包括 URL 和 URN 但不局限于这两种。URN确定了东西的身份,URL提供了找到它的方式。
- URN:
dmn.tld/page.htm
- URL:
https://dmn.tld/page.htm
HttpClient 发送请求,接受响应
- 创建 HttpClient 对象
- 创建请求方法的实例(创建对应的实例),指定请求 URL 。
- 创建 RequestConfig 对象, HttpPost 对象可以调用 setEntity(HttpEntity entity) 方法设置参数
- 调用 HttpClient 对象的 execute(HttpRequest request) 发送请求,方法返回一个 HttpResponse
- 调用 HttpResponse 对象的 getAllHeaders()、getHeaders(String name) 等获取响应头,getEntity() 方法可获取 HttpEntity ,包装了服务器的响应内容。
- 关闭连接(try-with-resource 语法可以直接关闭)
实例
private static void doGet(String url) {
// 1. 创建 httpclient 对象
try (CloseableHttpClient httpclient = HttpClients.createDefault()){
// 2. 创建一个 httpGet 对象
HttpGet httpGet = new HttpGet(url);
// 3. 设置请求和传输超时时间
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(3000).setConnectTimeout(3000).build();
httpGet.setConfig(requestConfig);
// 4. 执行请求,返回 response
try (CloseableHttpResponse response = httpclient.execute(httpGet)){
// 5. 判断返回状态是否为 200
if (response.getStatusLine().getStatusCode()== 200) {
String res = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(res);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}