VBAでREST通信
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
VBAでREST通信をする際のコードを各種サイトのコードを自分が...
Option Explicit
'-------------------------------------------------------...
' HTTP通信用クラス。
' 依存:
' GitHubの下記Dictionaryクラスをbasファイルとしてプロジ...
' https://github.com/timhall/VBA-Dictionary
' 使用例:
' パラメータの設定は、以下のようにしてsendメソッドの...
' Dim apiHeaders As Dictionary
' apiHeaders.Add "Authorization", "Basic " & base64Cr...
' apiHeaders.Add "Accept", "application/json"
' apiHeaders.Add "Content-Type", "application/json"
' 動作確認:
' 以下のサイトがありがたい
' http://httpbin.org
'-------------------------------------------------------...
' HTTP通信用オブジェクト
Private httpObj As Object
'-------------------------------------------------------...
' コンストラクタ
'-------------------------------------------------------...
Public Sub Class_Initialize()
Set httpObj = CreateObject("MSXML2.ServerXMLHTTP") ...
End Sub
'-------------------------------------------------------...
' デストラクタ
'-------------------------------------------------------...
Public Sub Class_Terminate()
Set httpObj = Nothing
End Sub
'-------------------------------------------------------...
' 引数のURLに指定メソッドで送信する。
'
' method : GET POST PATCH
' url:URL文字列
' urlParams:URLパラメーター
' headers: リクエストヘッダ
' return:レスポンスの文字列をJson解析したオブジェクト
'-------------------------------------------------------...
Public Function send(method As String, url As String, ur...
httpObj.Open method, url, False
' リクエストヘッダー設定
Dim i As Long
For i = 0 To headers.Count - 1
httpObj.setRequestHeader headers.Keys(i), header...
Next i
httpObj.send (urlParams)
' readyState=4: 読み込み完了
Do While httpObj.readyState < 4
DoEvents
Loop
Dim statusCode As Integer
statusCode = httpObj.Status
If (statusCode = 200) Then
Debug.Print "200:OK"
'PostContents = httpObj.responseText ' レスポン...
'PostContents = StrConv(httpObj.responsebody, vb...
' レスポンスの文字列(objHTTP.responseText)をJs...
Debug.Print "---------------"
Debug.Print httpObj.responseText
Dim responsJson As Object
Set responsJson = JsonConverter.ParseJson(httpOb...
responsJson("HTTP StatusCode") = 200
Set send = responsJson
Else
Set send = JsonConverter.ParseJson("{""HTTP Stat...
End If
End Function
* UUID [#r865e9ff]
requestIDを用意する場合に必要になるかもしれない。以下にコ...
https://www.330k.info/essay/create_uuid_vba/
終了行:
VBAでREST通信をする際のコードを各種サイトのコードを自分が...
Option Explicit
'-------------------------------------------------------...
' HTTP通信用クラス。
' 依存:
' GitHubの下記Dictionaryクラスをbasファイルとしてプロジ...
' https://github.com/timhall/VBA-Dictionary
' 使用例:
' パラメータの設定は、以下のようにしてsendメソッドの...
' Dim apiHeaders As Dictionary
' apiHeaders.Add "Authorization", "Basic " & base64Cr...
' apiHeaders.Add "Accept", "application/json"
' apiHeaders.Add "Content-Type", "application/json"
' 動作確認:
' 以下のサイトがありがたい
' http://httpbin.org
'-------------------------------------------------------...
' HTTP通信用オブジェクト
Private httpObj As Object
'-------------------------------------------------------...
' コンストラクタ
'-------------------------------------------------------...
Public Sub Class_Initialize()
Set httpObj = CreateObject("MSXML2.ServerXMLHTTP") ...
End Sub
'-------------------------------------------------------...
' デストラクタ
'-------------------------------------------------------...
Public Sub Class_Terminate()
Set httpObj = Nothing
End Sub
'-------------------------------------------------------...
' 引数のURLに指定メソッドで送信する。
'
' method : GET POST PATCH
' url:URL文字列
' urlParams:URLパラメーター
' headers: リクエストヘッダ
' return:レスポンスの文字列をJson解析したオブジェクト
'-------------------------------------------------------...
Public Function send(method As String, url As String, ur...
httpObj.Open method, url, False
' リクエストヘッダー設定
Dim i As Long
For i = 0 To headers.Count - 1
httpObj.setRequestHeader headers.Keys(i), header...
Next i
httpObj.send (urlParams)
' readyState=4: 読み込み完了
Do While httpObj.readyState < 4
DoEvents
Loop
Dim statusCode As Integer
statusCode = httpObj.Status
If (statusCode = 200) Then
Debug.Print "200:OK"
'PostContents = httpObj.responseText ' レスポン...
'PostContents = StrConv(httpObj.responsebody, vb...
' レスポンスの文字列(objHTTP.responseText)をJs...
Debug.Print "---------------"
Debug.Print httpObj.responseText
Dim responsJson As Object
Set responsJson = JsonConverter.ParseJson(httpOb...
responsJson("HTTP StatusCode") = 200
Set send = responsJson
Else
Set send = JsonConverter.ParseJson("{""HTTP Stat...
End If
End Function
* UUID [#r865e9ff]
requestIDを用意する場合に必要になるかもしれない。以下にコ...
https://www.330k.info/essay/create_uuid_vba/
ページ名: