java 调用http接口
时间: 2023-11-20 19:05:43 浏览: 75
Java 可以通过 HttpURLConnection 或 HttpClient 类来调用 HTTP 接口。
使用 HttpURLConnection 类,可以按照以下步骤来调用 HTTP 接口:
1. 创建一个 URL 对象,指定要访问的接口 URL。
```java
URL url = new URL("http://example.com/api");
```
2. 创建一个 HttpURLConnection 对象,通过调用 URL 对象的 openConnection 方法。
```java
HttpURLConnection con = (HttpURLConnection) url.openConnection();
```
3. 设置请求方法和请求头信息。
```java
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
```
4. 如果需要传递参数,可以通过 OutputStream 对象向请求体中写入数据。
```java
con.setDoOutput(true);
String data = "{\"name\": \"John\", \"age\": 30}";
OutputStream os = con.getOutputStream();
os.write(data.getBytes());
os.flush();
os.close();
```
5. 发起请求,并获取响应数据。
```java
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
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());
} else {
System.out.println("HTTP request failed.");
}
```
使用 HttpClient 类,可以按照以下步骤来调用 HTTP 接口:
1. 创建一个 HttpClient 对象。
```java
CloseableHttpClient httpClient = HttpClients.createDefault();
```
2. 创建一个 HttpPost 对象,设置要访问的接口 URL。
```java
HttpPost httpPost = new HttpPost("http://example.com/api");
```
3. 设置请求头信息和请求体数据。
```java
httpPost.setHeader("Content-Type", "application/json");
String data = "{\"name\": \"John\", \"age\": 30}";
StringEntity entity = new StringEntity(data);
httpPost.setEntity(entity);
```
4. 发起请求,并获取响应数据。
```java
CloseableHttpResponse response = httpClient.execute(httpPost);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity, "UTF-8");
System.out.println(responseString);
} else {
System.out.println("HTTP request failed.");
}
response.close();
httpClient.close();
```
注意,在使用 HttpClient 类时,需要手动关闭 HttpClient 和 HttpResponse 对象,以释放资源。
阅读全文