Send https post request in java (ssl)

북마크 추가

서버에서 ssl이 적용된 서버에 post request를 하는 방법 입니다.

 

1. sendPost.java

 

public static void sendPost(String parameters) throws Exception {
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager(){
public X509Certificate[] getAcceptedIssuers(){return new X509Certificate[0];}
public void checkClientTrusted(X509Certificate[] certs, String authType){}
public void checkServerTrusted(X509Certificate[] certs, String authType){}
}};
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

String url = "https://url";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

//add reuqest header
con.setRequestMethod("POST");

String urlParameters = parameters;

// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.write(urlParameters.getBytes("UTF-8"));
wr.flush();
wr.close();

int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();

//print result
System.out.println(response.toString());

}

 

 

 

 

 2. parameters

sendPost를 사용하여  post request를 할때 파라미터는 get방식을 호출 하듯이 아래와 같이 넘기시면 됩니다

 

 

String parameters = "param1="+param1+"&param2="+param2+"&param3="+param3;
sendPost(parameters);

 

 

AD
관리자
2017-01-13 11:25
SHARE