MyX509TrustManager(信任管理器)
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
public class MyX509TrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
HttpUtil(调用接口)
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class HttpUtil {
public static final String GET = "GET";
public static final String POST = "POST";
private static final String UTF_8 = "UTF-8";
public static JSONObject requestToJson(String urlStr, String post) {
return JSON.parseObject(request(urlStr, HttpUtil.POST, post));
}
public static JSONObject requestToJson(String urlStr) {
return JSON.parseObject(request(urlStr, HttpUtil.GET, ""));
}
public static Map<String, String> requestToMap(String urlStr, String post) {
try {
return xml2Map(request(urlStr, HttpUtil.POST, post));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static Map<String, String> requestToMap(String urlStr) {
try {
return xml2Map(request(urlStr, HttpUtil.GET, null));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String request(String urlStr, String method, String post) {
String result = null;
try {
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(null, urlStr, new sun.net.www.protocol.https.Handler());
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
httpUrlConn.setRequestMethod(method);
if (GET.equalsIgnoreCase(method)) {
httpUrlConn.connect();
}
if (null != post) {
OutputStream outputStream = httpUrlConn.getOutputStream();
outputStream.write(post.getBytes(UTF_8));
outputStream.close();
}
InputStream inputStream = httpUrlConn.getInputStream();
result = is2Str(inputStream);
httpUrlConn.disconnect();
} catch (ConnectException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String is2Str(InputStream inputStream) {
StringBuffer buffer = new StringBuffer();
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
try {
inputStreamReader = new InputStreamReader(inputStream, UTF_8);
bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bufferedReader != null) {
bufferedReader.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
inputStream = null;
return buffer.toString();
}
public static Map<String, String> xml2Map(String strXML) {
Map<String, String> data = null;
InputStream is = new ByteArrayInputStream(strXML.getBytes());
data = is2Map(is);
return data;
}
@SuppressWarnings("unchecked")
public static Map<String, String> is2Map(InputStream inputStream) {
Map<String, String> map = new HashMap<String, String>();
SAXReader reader = new SAXReader();
try {
Document document = reader.read(inputStream);
Element root = document.getRootElement();
List<Element> elementList = root.elements();
for (Element e : elementList)
map.put(e.getName(), e.getText());
} catch (DocumentException e) {
e.printStackTrace();
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
inputStream = null;
return map;
}
private static final String PREFIX_XML = "<xml>";
private static final String SUFFIX_XML = "</xml>";
private static final String PREFIX_CDATA = "<![CDATA[";
private static final String SUFFIX_CDATA = "]]>";
public static String map2Xml(Map<String, String> parm, boolean isAddCDATA) {
StringBuffer strbuff = new StringBuffer(PREFIX_XML);
if (null != parm) {
for (Entry<String, String> entry : parm.entrySet()) {
strbuff.append("<").append(entry.getKey()).append(">");
if (isAddCDATA) {
strbuff.append(PREFIX_CDATA);
if (null != entry.getValue()) {
strbuff.append(entry.getValue());
}
strbuff.append(SUFFIX_CDATA);
} else {
if (null != entry.getValue()) {
strbuff.append(entry.getValue());
}
}
strbuff.append("</").append(entry.getKey()).append(">");
}
}
return strbuff.append(SUFFIX_XML).toString();
}
}