在Java中调用网站接口通常有以下几种方式:
使用Java.net.HttpURLConnection
```java
URL url = new URL("http://example.com/api");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET"); // 或者 "POST"
// 设置请求头
conn.setRequestProperty("Content-Type", "application/json");
// 发送请求
InputStream in = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
// 关闭连接
br.close();
使用Apache HttpClient
```java
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpget = new HttpGet("http://example.com/api");
// 设置请求头
httpget.setHeader("Content-Type", "application/json");
CloseableHttpResponse response = httpclient.execute(httpget);
// 处理响应
System.out.println("Status Code: " + response.getStatusLine().getStatusCode());
// 读取响应内容
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
// 关闭连接
response.close();
使用Spring Boot的RestTemplate
```java
@RestController
public class MyController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/get")
public String get() {
String url = "http://example.com/api";
ResponseEntity
return response.getBody();
}
@PostMapping("/post")
public String post(@RequestBody String data) {
String url = "http://example.com/api";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity
ResponseEntity
return response.getBody();
}
}
以上示例展示了如何使用Java的不同库和方法调用网站接口。选择哪种方法取决于你的项目需求和个人偏好。如果你使用的是Spring Boot项目,那么使用RestTemplate可能更加方便和集成。如果你需要更底层的控制,可以选择使用HttpURLConnection或Apache HttpClient。
请根据你的具体需求选择合适的方法,并注意处理异常和关闭资源以避免资源泄露