FISHING ARMS COMPUTER SYSTEM TRANSPORT TALK TO US.
|
HOME [MENU] RestClient.cls 2023-12-21 v1.0 DOWNLOAD
VERSION 1.0 CLASS BEGIN MultiUse = -1 'True END Attribute VB_Name = "RestClient" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False ' RestClient v1.0 ' ' (c) COOL MAGIC TOKYO - https://coolmagic.guy.jp/computer/download/index_en.html ' 0-clause BSD license included below ' '--------------------------------------------------------------------------------- ' Copyright (C) 2023 by "COOL MAGIC TOKYO" shop@coolmagic.guy.jp ' ' Permission to use, copy, modify, and/or distribute this software for any purpose ' with or without fee is hereby granted. ' ' THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH ' REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ' FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, ' INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS ' OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ' TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ' THIS SOFTWARE. Option Explicit Private httpObj As Object 'uMicrosoft XML, v6.0vQƐݒ Private statusCode Public contentType Public url Public proxyHost Public credentialUser Public credentialPassword Public Sub Class_Initialize() Set httpObj = CreateObject("MSXML2.ServerXMLHTTP") ' TLS1.2ɑΉ contentType = "application/json" proxyHost = "" credentialUser = "" credentialPassword = "" statusCode = 0 End Sub Public Sub Class_Terminate() Set httpObj = Nothing End Sub '-------------------------------------------------------------------------------- ' RequestPost ' Public Function RequestPost(urlParams As Object) As Object On Error GoTo RequestPostError Set RequestPost = Nothing statusCode = 0 httpObj.Open "POST", url, False SetProxy httpObj.setRequestHeader "Content-Type", contentType httpObj.send (JsonConverter.ConvertToJson(urlParams)) Do While httpObj.readyState < 4 DoEvents Loop statusCode = httpObj.status If statusCode <> 200 Then Exit Function Set RequestPost = JsonConverter.ParseJson(StrConv(httpObj.responseBody, vbUnicode)) RequestPostError: If Err <> 0 Then MsgBox Error(Err), vbExclamation, "PostContentsError" On Error Resume Next Err.Clear Exit Function End Function '-------------------------------------------------------------------------------- ' RequestGet ' Public Function RequestGet(Optional urlParams As Object = Null) As Object On Error GoTo RequestGetError Set RequestGet = Nothing statusCode = 0 Dim strUrl strUrl = url If Not IsNull(urlParams) And (urlParams Is Nothing) = False Then strUrl = strUrl & "?" & encodeParams(urlParams) End If httpObj.Open "GET", strUrl SetProxy httpObj.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" httpObj.send ' readyState=4œǂݍ݂ Do While httpObj.readyState < 4 DoEvents Loop statusCode = httpObj.status If statusCode <> 200 Then Exit Function Set RequestGet = JsonConverter.ParseJson(StrConv(httpObj.responseBody, vbUnicode)) RequestGetError: If Err <> 0 Then MsgBox Error(Err), vbExclamation, "GetContentsError" On Error Resume Next Err.Clear Exit Function End Function '-------------------------------------------------------------------------------- ' encodeParams ' Private Function encodeParams(pDic As Dictionary) On Error GoTo encodeParamsError Dim ary() As String ReDim ary(pDic.Count - 1) As String Dim i As Long For i = 0 To pDic.Count - 1 ary(i) = pDic.Keys(i) & "=" & Application.WorksheetFunction.EncodeURL(pDic.Items(i)) Next i encodeParams = Join(ary, "&") encodeParamsError: If Err <> 0 Then MsgBox Error(Err), vbExclamation, "encodeParamsError" On Error Resume Next Err.Clear Exit Function End Function '-------------------------------------------------------------------------------- ' setProxy ' Private Sub SetProxy() If Len(proxyHost) > 0 Then httpObj.SetProxy 2, proxyHost End If If Len(credentialUser) > 0 And Len(credentialPassword) > 0 Then httpObj.setProxyCredentials credentialUser, credentialPassword End If End Sub '-------------------------------------------------------------------------------- ' GetStatus ' Public Function GetStatus() GetStatus = statusCode End Function
Created. 21 Dec 2023.
21 Dec 2023. shop@coolmagic.guy.jp
HOME [MENU] |