1. 使用`HttpURLConnection`:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpsExample {
public static void main(String[] args) throws IOException {
URL url = new URL("https://api.example.com/endpoint");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
// 读取响应内容
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
}
2. 使用`HttpsURLConnection`并自定义信任管理器(如果需要):
```java
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
public class HttpsClient {
public static void main(String[] args) throws Exception {
String url = "https://api.example.com/endpoint";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
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());
}
}
3. 使用`HttpClient`(Apache HttpClient库):
```java
import org.apache.http.HttpEntity;
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.message.BasicHeader;
import org.apache.http.util.EntityUtils;
public class HttpClientUtil {
public static String doPost(String url, String jsonstr, String charset) {
HttpClient httpClient = null;
HttpPost httpPost = null;
String result = null;
try {
httpClient = new SSLHttpClient(); // 需要自定义SSLHttpClient类
httpPost = new HttpPost(url);
httpPost.setHeader(new BasicHeader("Content-type", "application/json;charset=" + charset));
httpPost.setEntity(new StringEntity(jsonstr, charset));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
if (entity != null) {
result = EntityUtils.toString(entity, charset);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (httpPost != null) {
httpPost.releaseConnection();
}
}
return result;
}
}
请注意,如果需要自定义信任管理器来处理自签名证书或证书链问题,你可能需要按照第二点中的示例代码进行相应的配置。
以上示例展示了如何使用Java调用HTTPS接口,你可以根据实际需求选择合适的方法。