在Java中调用REST接口通常有以下几种方式:
1. 使用`HttpURLConnection`
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class RestClient {
public static void main(String[] args) {
try {
URL url = new URL("http://example.com/api/resource");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/json");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. 使用`HttpClient`(推荐使用Java 11及以上版本中的`HttpClient`)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class RestClient {
public static void main(String[] args) {
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com/api/resource"))
.header("Content-Type", "application/json")
.GET()
.build();
HttpResponse
response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}
3. 使用Spring的`RestTemplate`
import org.springframework.web.client.RestTemplate;
public class RestClient {
public static void main(String[] args) {
RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api/resource";
String result = restTemplate.getForObject(url, String.class);
System.out.println(result);
}
}