在VBA中,我需要請求http消息並解析響應文本。 我已經成功地獲得了http狀態爲'200'的響應文本,但正文已加密。 (頭文件不是)所以我一直試圖解密這個消息,但是由於對SSL概念和編程技巧的瞭解不多,我就陷入了困境。VBA - https響應文本解密
With oRequest
.Open "GET", sUrl, False
.SetRequestHeader "Accept", "*/*"
.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
.SetRequestHeader "Connection", "Keep -Alive"
'.SetClientCertificate ("HKEY_LOCAL_MACHINE/Software/Microsoft/SystemCertificates/CA/Certificates")
.Send
sResult = .GetAllResponseHeaders
Debug.Print sResult
sResult = .ResponseText
Debug.Print sResult
上面的腳本是我寫的。有了這個,我有一些問題。
1.'SetClientCertificate()'是否必要?我怎樣才能成功獲得回覆文本?
- 正如我已經搜查,「SetClientCertificate()」是發送的消息發送到服務器的方法。但是,我沒有使用這種方法發送(並獲得響應)消息。我無法理解這是如何工作的。
2.在VBA中,如何使用證書進行解碼響應主體
- 我真的沒有關於如何解密響應文本的想法。我知道我的本地計算機中有合適的證書,證書中的密鑰可用於解密該消息,但我如何在VBA中執行此操作?我真的找不到有關這方面的有用文章。
請讓我知道我誤解了什麼,並給我任何線索來解決問題。
[+編輯]
腳本,有一句臺詞:
.SetRequestHeader "Accept-Encoding", "gzip , deflate"
我省略了在這個問題這條線。因爲我認爲這個問題是關於SSL的,所以我故意刪除了一些根本沒有必要的行。 (這是完全錯誤的)
隨着刪除線,它的作品。
非常感謝。問題不在於加密,而在於您提到的壓縮。我刪除了行 「.SetRequestHeader」Accept-Encoding「,」gzip,deflate「 然後它的工作原理是這樣的行不寫在我原來的問題(只是我錯誤張貼或編輯) 謝謝。我應該更多地研究這一點,坦率地說,我不會100%理解發生了什麼。 – kdragon