Java发起https post请求

时间:2025-03-17 18:57:44

/**
 * 发送https请求
 * @param apiURL:请求URL
 * @param postParams:请求参数
 * @return
 */

public static String sendHttpsPost(String apiURL, String postParams){

("http send url :" + apiURL);
TrustManager[] trustAllCerts = new TrustManager[1];
TrustManager tm = new SSLTrustManager();
trustAllCerts[0] = tm;
HttpsURLConnection conn = null;
DataOutputStream dos = null;
BufferedReader br = null;
try {
("send data :" + (postParams));
SSLContext sc = ("SSL");
(null, trustAllCerts, null);
(());
((HostnameVerifier) tm);
URL url = new URL(apiURL);
conn = (HttpsURLConnection) ();
("POST");
(false);
(true);
(true);
(CONNECT_TIMEOUT);
(READ_TIMEOUT);
("Content-Type", "application/json");

("Content-Length",(().length));

   //请求URL需要认证的用户名和密码

String username = ("es_username");
String password = ("es_password");
if( (username) && (password) ){
String encoding = new String((new String(username + ":" + password).getBytes()));
("Authorization","Basic "+encoding);
}
dos = new DataOutputStream(());
(postParams);
br = new BufferedReader(new InputStreamReader((),"UTF-8"));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = ()) != null) {
(line);
}
("receive data :" + ());
return ();
}catch (Exception e) {
(());
();
}finally {
try{
if(dos != null) {
();
}
if(br != null) {
();
}
if(conn != null) {
();
}
}catch(Exception e){
(());
}


}
return null;

}



package ;
import ;
import ;


public class SSLTrustManager implements ,
        .X509TrustManager ,HostnameVerifier {
    @Override
public .X509Certificate[] getAcceptedIssuers() {
        return null;
    }


    public boolean isServerTrusted(
            .X509Certificate[] certs) {
        return true;
    }


    public boolean isClientTrusted(
            .X509Certificate[] certs) {
        return true;
    }


    @Override
public void checkServerTrusted(
            .X509Certificate[] certs, String authType)
            throws {
        return;
    }


    @Override
public void checkClientTrusted(
            .X509Certificate[] certs, String authType)
            throws {
        return;
    }


    @Override
    public boolean verify(String urlHostName, SSLSession session) { //允许所有主机
        return true;
    }
}