import java.io.*;
import java.net.*;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.*;
import net.sf.json.JSONObject;
public class SendHttps {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[] {};
}
}
private static class TrustAnyHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
@SuppressWarnings("deprecation")
public static String sendHttps(String sendUrl, String data) {
String str_return = "";
try {
SSLContext sc = null;
try {
sc = SSLContext.getInstance("SSL");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom());
} catch (KeyManagementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// URL console = new URL(sendUrl);
// HttpsURLConnection conn = (HttpsURLConnection) console
// .openConnection();
HttpsURLConnection conn = (HttpsURLConnection) (new URL(sendUrl)).openConnection();
//
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setReadTimeout(30 * 1000);
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setRequestProperty("Content-Length", String.valueOf(data.getBytes().length));
conn.getOutputStream().write(data.getBytes("utf-8"));
// conn.getOutputStream().flush();
// conn.getOutputStream().close();
// conn.connect();
/*
* InputStream is = conn.getInputStream(); DataInputStream indata =
* new DataInputStream(is); String ret = "";
*
* while (ret != null) { ret = indata.readLine(); if (ret != null &&
* !ret.trim().equals("")) { str_return = str_return + new
* String(ret.getBytes("ISO-8859-1"), "GBK"); } } conn.disconnect();
*/
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
str_return = str_return + line;
}
} catch (ConnectException e) {
System.out.println(e);
try {
throw e;
} catch (ConnectException e1) {
// e1.printStackTrace();
str_return = "timeout";
}
} catch (IOException e) {
System.out.println(e);
try {
throw e;
} catch (IOException e1) {
// TODO Auto-generated catch block
str_return = "timeout";
}
}
return str_return;
}
public static void main(String[] args) {
String sendUrl = "https://apist.baiqis.com/services/decision";
JSONObject obj = new JSONObject();
obj.put("partnerId", partnerId);
obj.put("verifykey", verifykey);
obj.put("appId", appId);
obj.put("eventType", eventType);
obj.put("tokenKey", tokenKey);
sendHttps(sendUrl, obj.toString());
}
}