在Java中调用第三方HTTP接口通常有以下几种方式:
1. 使用Java内置的`HttpURLConnection`类:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpClient {
public static void main(String[] args) {
try {
URL url = new URL("http://example.com/api");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int statusCode = connection.getResponseCode();
if (statusCode == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. 使用第三方库,如Apache HttpClient:
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class HttpClientExample {
public static void main(String[] args) {
HttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://example.com/api");
try {
HttpResponse response = httpClient.execute(httpGet);
String result = EntityUtils.toString(response.getEntity());
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
3. 使用Spring框架的`RestTemplate`:
import org.springframework.web.client.RestTemplate;
public class RestClientExample {
public static void main(String[] args) {
RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api";
String result = restTemplate.getForObject(url, String.class);
System.out.println(result);
}
}
4. 使用Java 8及以上版本的流API和`HttpClient`:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Java11HttpClientExample {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com/api"))
.GET()
.build();
try {
HttpResponse
response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上示例展示了如何使用不同的方法调用HTTP接口。您可以根据项目需求选择合适的方法。