Java 可以通过很多方式来实现 http 请求,其中比较常用的有以下几种方式:
1. HttpURLConnection:Java 提供的标准库中的一个类,可以轻松处理 http 请求和响应,支持 GET、POST、PUT、DELETE 等请求方式。
以下是一个使用 HttpURLConnection 发送 GET 请求的示例代码:
```java
URL url = new URL("http://www.example.com/");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
- HttpClient:Apache 开发的一个开源库,提供了更强大的 http 请求处理能力,支持更多的请求方式和请求参数的配置。
以下是一个使用 HttpClient 发送 POST 请求的示例代码:
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://www.example.com/");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", "user1"));
params.add(new BasicNameValuePair("password", "pass1"));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params);
httpPost.setEntity(entity);
CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
try {
HttpEntity responseEntity = httpResponse.getEntity();
String response = EntityUtils.toString(responseEntity);
EntityUtils.consume(responseEntity);
System.out.println(response);
} finally {
httpResponse.close();
}
- OkHttp:一个轻量级且高效的 http 请求库,也是 Square 公司开发的开源库,支持异步请求和流式 API。
以下是一个使用 OkHttp 发送 GET 请求的示例代码:
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.example.com/")
.build();
Response response = client.newCall(request).execute();
String responseBody = response.body().string();
System.out.println(responseBody);
总的来说,以上几种方式都可以实现 http 请求,可以根据实际需要选择使用哪种方式。在实际开发中,使用第三方库如 OkHttp 或 HttpClient 可以使代码更加简洁和易用。
标签:http,请求,--,System,println,new,chatgpt,response
From: https://www.cnblogs.com/hbym/p/17334677.html