首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

微信 HTTPS 請求工具類:完整封裝 GET/POST/文件上傳/素材下載

     編輯:Java 綜合教學

微信 HTTPS 請求工具類:完整封裝 GET/POST/文件上傳/素材下載

微信開發頻繁涉及 HTTPS 接口調用(獲取 Access Token、上傳素材、發送模板消息等)。本文提供一個生產級 HttpTool,統一處理 SSL 證書信任、連接池、輸出入流、異常與資源釋放,支援 GET、POST、Multipart 文件上傳、媒體素材下載。

核心特性

  • 忽略 SSL 證書驗證:自定義 TrustManager + HostnameVerifier,適配微信自簽/測試環境證書。
  • 統一資源管理:finally 塊關閉流與斷開連接,防洩漏。
  • 多協議支援:HTTPS(微信主流)與 HTTP(內部/第三方)雙模式。
  • Spring 整合:@Component + @Autowired 注入 IoTool 處理流轉換。

關鍵方法速覽

方法用途備註
sendSSLGetMethod(url)HTTPS GET 請求返回字串響應
sendSSLPostMethod(url, json)HTTPS POST JSON自動設置 Content-Type/Length
sendSSLMutiPartFormData(url, filePath, formName)HTTPS 文件上傳構建 multipart/form-data,支援大文件流式寫入
sendSSLGetDownloadMedia(url)HTTPS 下載素材解析 Content-disposition 獲取文件名,返回 Map<fileName, byte[]>
sendSSLPostDownloadMedia(url, json)POST 下載素材同上,支援需 POST 參數的下載接口
sendGetMethod / sendPostMethod普通 HTTP 請求設置 User-Agent、Keep-Alive 等通用頭
isAsynchronousRequest(request)判斷 AJAX 請求檢測 x-requested-with 或自定義 RequestType 頭

核心代碼片段:SSL 忽略證書

// 忽略主機名驗證
private static HostnameVerifier ignoreHostnameVerifier = (s, sslSession) -> true;

// 忽略證書信任鏈
private static TrustManager ignoreCertificationTrustManager = new X509TrustManager() {
    public void checkClientTrusted(X509Certificate[] chain, String authType) {}
    public void checkServerTrusted(X509Certificate[] chain, String authType) {}
    public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
};

// 構建 SSLContext
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, new TrustManager[]{ignoreCertificationTrustManager}, new SecureRandom());
connection.setSSLSocketFactory(sslContext.getSocketFactory());

使用建議

  1. 生產環境建議替換為正式 CA 證書驗證,僅測試/特殊場景忽略 SSL。
  2. 大文件上傳/下載注意流式處理,避免 OOM。
  3. 配合 IoTool.getStringFromInputStream / getByteArrayFromInputStream 統一流轉換邏輯。

此工具類已在多個微信公眾號/小程序項目中穩定運行,可直接拷貝適配或作為二次封裝基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved