- UID
- 3145
- 帖子
- 28
- 主題
- 11
- 精華
- 1
- 積分
- 97
- 楓幣
- 2051
- 威望
- 76
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 27
- 閱讀權限
- 100
- 性別
- 保密
- 在線時間
- 24 小時
- 註冊時間
- 2012-1-24
- 最後登入
- 2023-1-19
|
- ' HTTP Downloading Module By Inndy
- Option Explicit
- ' For API
- Private Const CP_ACP = 0 ' default to ANSI code page
- Private Const CP_UTF8 = 65001 ' default to UTF-8 code page
- Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
- Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long
- ' For module
- Public Enum Encode
- ANSI = 0
- BIG5 = 1
- UTF8 = 2
- End Enum
- Private Function ToUTF8(ByVal sData As String) As Byte()
- Dim aRetn() As Byte, nSize As Long
- nSize = WideCharToMultiByte(CP_UTF8, 0, StrPtr(sData), -1, 0, 0, 0, 0)
- ReDim aRetn(0 To nSize - 1) As Byte
- WideCharToMultiByte CP_UTF8, 0, StrPtr(sData), -1, VarPtr(aRetn(0)), nSize, 0, 0
- ToUTF8 = aRetn
- End Function
- Private Function FromUTF8(ByVal sData As String) As Byte()
- Dim aRetn() As Byte, nSize As Long
- nSize = MultiByteToWideChar(CP_UTF8, 0, StrPtr(sData), -1, 0, 0)
- ReDim aRetn(0 To 2 * nSize - 1) As Byte
- MultiByteToWideChar CP_UTF8, 0, StrPtr(sData), -1, VarPtr(aRetn(0)), nSize
- FromUTF8 = aRetn
- End Function
- Public Function DownloadData(ByVal url As String) As Byte()
- Dim http As Object
- Set http = CreateObject("MSXML2.ServerXMLHTTP")
- http.Open "GET", url, False
- http.setRequestHeader "Pragma", "no-cache"
- http.send
- DownloadData = http.responseBody
- Set http = Nothing
- End Function
- Public Function DownloadString(ByVal url As String, Optional ByVal EncType As Encode = Encode.BIG5) As String
- If EncType = Encode.ANSI Then
- DownloadString = DownloadData(url)
- ElseIf EncType = Encode.BIG5 Then
- DownloadString = StrConv(DownloadData(url), vbUnicode)
- Else
- DownloadString = FromUTF8(DownloadData(url))
- End If
- End Function
複製代碼 |
-
總評分: 楓幣 + 20
威望 + 2
查看全部評分
|