在Java中编写HTTP POST接口通常有以下几种方法:
1. 使用`HttpURLConnection`类:
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpPostExample {
public static void main(String[] args) throws Exception {
String url = "https://example.com/api/endpoint";
URL obj = new URL(url);
HttpURLConnection connection = (HttpURLConnection) obj.openConnection();
// 设置请求方法为POST
connection.setRequestMethod("POST");
// 设置请求头
connection.setRequestProperty("Content-Type", "application/json");
// 设置是否向HttpURLConnection输出
connection.setDoOutput(true);
// 发送POST请求
String jsonInputString = "{\"username\":\"张三\",\"password\":\"\"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
// 获取响应码
int responseCode = connection.getResponseCode();
System.out.println("POST Response Code :: " + responseCode);
}
}
2. 使用`Apache HttpClient`库:
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class HttpClientExample {
public static void main(String[] args) {
String url = "https://example.com/api/endpoint";
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
// 设置请求头
httpPost.setHeader("Content-Type", "application/json");
// 设置请求体
String jsonInputString = "{\"username\":\"张三\",\"password\":\"\"}";
httpPost.setEntity(new StringEntity(jsonInputString));
try {
HttpResponse response = httpClient.execute(httpPost);
System.out.println("POST Response Code :: " + response.getStatusLine().getStatusCode());
System.out.println("POST Response Body :: " + EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
3. 使用`Spring框架的RestTemplate`:
import org.springframework.web.client.RestTemplate;
public class RestTemplateExample {
public static void main(String[] args) {
String url = "https://example.com/api/endpoint";
RestTemplate restTemplate = new RestTemplate();
// 创建请求体
String jsonInputString = "{\"username\":\"张三\",\"password\":\"\"}";
// 发送POST请求
String result = restTemplate.postForObject(url, jsonInputString, String.class);
System.out.println("POST Response Body :: " + result);
}
}
以上示例展示了如何使用Java标准库、Apache HttpClient库和Spring框架的RestTemplate发送HTTP POST请求。请根据您的具体需求选择合适的方法。