跳到主要內容

Kosp-SSL相關

 


//專案

package com.example.danny.toxicgpsauditapp;


//以下是新增class


import java.security.KeyManagementException;

import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import java.security.cert.X509Certificate;


import javax.net.ssl.HostnameVerifier;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSession;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

/**

* Created by DannyDev on 2017/10/18.

*/



public class SsX509TrustManager implements X509TrustManager {

   private static TrustManager[] trustManagers;

   private static final X509Certificate[] _AcceptedIssuers = new

           X509Certificate[]{};


   @Override

   public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {

       //To change body of implemented methods use File | Settings | File Templates.

   }


   @Override

   public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {

       //To change body of implemented methods use File | Settings | File Templates.

   }


   public boolean isClientTrusted(X509Certificate[] chain) {

       return true;

   }


   public boolean isServerTrusted(X509Certificate[] chain) {

       return true;

   }


   @Override

   public X509Certificate[] getAcceptedIssuers() {

       return _AcceptedIssuers;

   }


   /**

    * 允许所有的SSL请求,添加在new StringRequest()之前

    */

   public static void allowAllSSL() {

       HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {


           @Override

           public boolean verify(String arg0, SSLSession arg1) {

               // TODO Auto-generated method stub

               return true;

           }


       });


       SSLContext context = null;

       if (trustManagers == null) {

           trustManagers = new TrustManager[]{new SsX509TrustManager()};

       }


       try {

           context = SSLContext.getInstance("TLS");

           context.init(null, trustManagers, new SecureRandom());

       } catch (NoSuchAlgorithmException e) {

           e.printStackTrace();

       } catch (KeyManagementException e) {

           e.printStackTrace();

       }


       HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());

   }


}



//使用範例

public static String GetWebService(String nameSpace, String methodName, String parameter,

                                  String url, String action) {


   SoapObject soapObj = new SoapObject(nameSpace, methodName);

   soapObj.addProperty(parameter, action);

   //soapObj.addProperty(parameter2, action2);

   SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);


   envelope.bodyOut = soapObj;

   envelope.dotNet = true;

SsX509TrustManager.allowAllSSL(); //加入這句



   HttpTransportSE transport = new HttpTransportSE(url);


   try {

       /**

                    * 連接網絡獲取數據

                    */

       transport.call(nameSpace + methodName, envelope);

       SoapObject soapReault = (SoapObject) envelope.bodyIn;

       String result = soapReault.getProperty(0).toString();

       return result;


   } catch (SoapFault e) {


       return e.getMessage();


   } catch (ConnectException e) {


       /**

                    * 無網絡連接

                    */

       return "ConnectException";


   } catch (IOException e) {


       return e.getMessage();


   } catch (XmlPullParserException e) {


       return e.getMessage();


   } catch (Exception e) {


       return e.getMessage();


   }

}


留言

這個網誌中的熱門文章

Windows Ubuntu (WSL) 安裝 OpenClaw 保母級教學

Windows Ubuntu (WSL) 安裝 OpenClaw 保母級教學 🎮 OpenClaw 安裝保母級教學 專為 Windows Ubuntu (WSL) 環境打造。我們將一步步帶您從零開始,編譯並運行這款經典遊戲《Captain Claw (神之領域)》的開源引擎。無需專業背景,跟著點擊即可完成! ⏱️ 安裝流程預覽 整個安裝過程大約需要 15 到 20 分鐘 。大部分時間將花費在下載依賴套件以及編譯遊戲核心上。請確保您的網路連線穩定。 💡 必備條件: 已在 Windows 上安裝 WSL2 (Ubuntu),並且具備基礎的網路連線。 📁 額外準備: 您需要擁有原版《Captain Claw》的遊戲資源檔 (ASSETS 資料夾) 才能實際遊玩。 ...

2026/03/13 台股與AI盤勢分析 By Gemini NotebookLM

  戰火迷霧中的矽盾:當 100 美元油價襲擊市場,台積電 1.6 奈米能否成為定海神針? 1. 前言:625 點的震撼教育 2026 年 3 月 13 日,台北股市為全球投資人上了一堂極其殘酷的「地緣政治風險」課。這不僅是數字的起伏,更是一場集體心理的極限壓力測試。當日加權指數盤中震幅高達 625 點 ,市場情緒在開盤後的幾小時內,從美伊軍事衝突引發的「極度恐慌」一路下殺,指數一度重挫逾 500 點,最低觸及 33,458.64 點 。 然而,當全球焦點被荷姆茲海峽的硝煙籠罩時,台股在午盤卻展現了驚人的「基本面撐盤」韌性,終場跌幅收斂至 181.54 點,收在 33,400.32 點 。這種從血洗開盤到冷靜承接的轉折,揭示了一個深刻的現實:在全球能源供應鏈受阻的陰影下,台灣的科技核心正以一種超越宏觀恐慌的生命力,重新定義市場的底部。 2. 鋼鐵般的韌性:台積電如何化解「氦氣斷供」危機? 在 3 月 13 日的恐慌性拋售中,台積電(2330)股價下跌 20 元,收在 1,865 元 。除了 ADR 崩跌與地緣政治溢價的壓力外,市場一度瘋傳一個足以癱瘓半導體命脈的流言:卡達氦氣供應因荷姆茲海峽封鎖而中斷。 由於卡達是全球氦氣的主要產地,而先進製程中的 EUV 光刻技術對高純度氦氣有著絕對依賴,市場擔憂台積電將因缺氣而被迫降速。面對此種足以誘發系統性崩盤的流言,台積電展現了其作為全球供應鏈樞紐的防禦深度,官方迅速給出權威回應: 「目前評估(中東)局勢對營運並無重大影響。」 —— 台積電官方(2026 年 3 月 13 日) 這份底氣並非空穴來風,而是源於其長期執行的多元供應商策略與戰備庫存管理。在碎片化的世界中,台積電的護城河已不再僅限於產能領先,更在於其應對地緣衝突的「供應鏈適應力」。 3. 「五層蛋糕」的考驗:AI 算力與 $100 美元油價的拉鋸 輝達(NVIDIA)執行長黃仁勳曾提出著名的 AI 經濟「五層蛋糕」理論:能源、晶片、基礎設施、模型與應用。如今,這塊蛋糕最底層的「能源」正遭受劇烈衝擊——布蘭特原油飆破 100 美元 ,馬士基(Maersk)與地中海航運(MSC)等航運巨頭被迫繞道。 當能源成本翻倍,資料中心的運營成本隨之飆升,這對 AI 產業的投資回報率(ROI)構成了嚴峻挑戰。在此背景下,輝達即將在 GTC 2026 亮相、採用台積電 A1...

PHP + MySQL 範例 By ChatGPT

  PHP + MySQL 範例 By ChatGPT 以下是一個簡單的 PHP + MySQL 範例,演示如何建立一個簡單的使用者註冊系統: 首先,創建一個名為 register.php 的 PHP 檔案,用於顯示註冊表單和處理用戶提交的註冊信息。 php <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>User Registration</title> </head> <body> <h2>User Registration</h2> <form action= "register.php" method= "post" > <label for = "username" >Username:</label> <input type= "text" id= "username" name= "username" required><br><br> <label for = "password" >Password:</label> <input type= "password" id= "password" name= "password" required><br><br> <input type= "submit" value= "Register" > </form> <?php // 如果是 POST 請求,處理用戶註冊 if ( $_S...