Java发送Https请求

向右看齐 2022-06-18 03:54 404阅读 0赞
  1. package test;
  2. import java.io.BufferedReader;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import java.net.URL;
  6. import java.net.URLConnection;
  7. import java.security.cert.CertificateException;
  8. import java.security.cert.X509Certificate;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. import javax.net.ssl.HostnameVerifier;
  12. import javax.net.ssl.HttpsURLConnection;
  13. import javax.net.ssl.SSLContext;
  14. import javax.net.ssl.SSLSession;
  15. import javax.net.ssl.TrustManager;
  16. import javax.net.ssl.X509TrustManager;
  17. /**
  18. * Http工具类
  19. */
  20. public class HttpClient{
  21. /**
  22. * 处理https请求
  23. * @param requestUrl 请求地址
  24. * @param map 请求报头标识信息
  25. * @return
  26. */
  27. public static String httpsRequest(String requestUrl,Map<String,String> map){
  28. StringBuffer buffer=new StringBuffer();
  29. try{
  30. // Create a trust manager that does not validate certificate chains
  31. TrustManager[] trustAllCerts=new TrustManager[]{new X509TrustManager(){
  32. public X509Certificate[] getAcceptedIssuers(){
  33. return null;
  34. }
  35. public void checkClientTrusted(X509Certificate[] certs,String authType)
  36. throws CertificateException{
  37. }
  38. public void checkServerTrusted(X509Certificate[] certs,String authType)
  39. throws CertificateException{
  40. }
  41. }};
  42. // Install the all-trusting trust manager
  43. SSLContext sc=SSLContext.getInstance("SSL");
  44. sc.init(null,trustAllCerts,new java.security.SecureRandom());
  45. HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
  46. // Create all-trusting host name verifier
  47. HostnameVerifier allHostsValid=new HostnameVerifier(){
  48. public boolean verify(String hostname,SSLSession session){
  49. return true;
  50. }
  51. };
  52. // Install the all-trusting host verifier
  53. HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
  54. URL url=new URL(requestUrl);
  55. URLConnection con=url.openConnection();
  56. con.setDoOutput(true);
  57. con.setDoInput(true);
  58. con.setUseCaches(false);
  59. if(map!=null){
  60. for(Map.Entry<String,String> entry : map.entrySet()){
  61. con.setRequestProperty(entry.getKey(),entry.getValue());
  62. }
  63. }
  64. con.connect();
  65. //读取服务器端返回的内容
  66. InputStream is=con.getInputStream();
  67. InputStreamReader isr=new InputStreamReader(is,"utf-8");
  68. BufferedReader br=new BufferedReader(isr);
  69. String line=null;
  70. while((line=br.readLine())!=null){
  71. buffer.append(line);
  72. }
  73. is.close();
  74. }
  75. catch(Exception e){
  76. System.out.println(e.getMessage());
  77. e.printStackTrace();
  78. }
  79. return buffer.toString();
  80. }
  81. public static void main(String[] args){
  82. Map<String,String> map=new HashMap<String,String>();
  83. map.put("Authorization","Basic ZGlyZWN0X2FwaV91c2VyOmRpcmVjdF9hcGlfdXNlcl9wc3c=");
  84. map.put("Content-Type","application/json");
  85. String s=httpsRequest("https://地址",map);
  86. System.out.println(s);
  87. }
  88. }

发表评论

表情:
评论列表 (有 0 条评论,404人围观)

还没有评论,来说两句吧...

相关阅读