@@ -19,7 +19,6 @@ Attribute VB_Exposed = True
19
19
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
20
20
Option Explicit
21
21
22
- Private Const UserAgent As String = "Excel Client v2.0.1 (https://github.com/timhall/Excel-REST)"
23
22
Private Const DefaultTimeoutMS As Integer = 5000
24
23
25
24
@@ -48,7 +47,7 @@ Public Function Execute(Request As RestRequest) As RestResponse
48
47
Dim HeaderKey As Variant
49
48
50
49
On Error GoTo ErrorHandling
51
- Set Http = CreateObject("MSXML2.ServerXMLHTTP" )
50
+ Set Http = CreateObject("MSXML2.ServerXMLHTTP.6.0 " )
52
51
HttpSetup Http, Request, False
53
52
54
53
' Send the request
@@ -63,8 +62,8 @@ ErrorHandling:
63
62
64
63
If Err.Number <> 0 Then
65
64
If InStr(Err.Description, "The operation timed out" ) > 0 Then
66
- ' Return 504
67
- Set Response = Request.CreateResponse(StatusCodes.GatewayTimeout , "Gateway Timeout" )
65
+ ' Return 408
66
+ Set Response = Request.CreateResponse(StatusCodes.RequestTimeout , "Request Timeout" )
68
67
Err.Clear
69
68
Else
70
69
' Rethrow error
@@ -92,7 +91,7 @@ Public Function ExecuteAsync(Request As RestRequest, Callback As String, Optiona
92
91
On Error GoTo ErrorHandling
93
92
94
93
' Setup the request
95
- Set Http = CreateObject("MSXML2.ServerXMLHTTP" )
94
+ Set Http = CreateObject("MSXML2.ServerXMLHTTP.6.0 " )
96
95
HttpSetup Http, Request, True
97
96
Request.Callback = Callback
98
97
Request.CallbackArgs = CallbackArgs
@@ -122,18 +121,7 @@ End Function
122
121
' ============================================= '
123
122
124
123
Private Sub HttpSetup (ByRef Http As Object , ByRef Request As RestRequest , Optional UseAsync As Boolean = False )
125
- ' Set timeouts
126
- Http.setTimeouts Me.TimeoutMS, Me.TimeoutMS, Me.TimeoutMS, Me.TimeoutMS
127
-
128
- ' Add general headers to request
129
- Request.AddHeader "User-Agent" , UserAgent
130
- Request.AddHeader "Content-Type" , Request.ContentType()
131
-
132
- ' Pass http to request and setup onreadystatechange
133
- If UseAsync Then
134
- Set Request.HttpRequest = Http
135
- Http.onreadystatechange = Request
136
- End If
124
+ RestHelpers.PrepareHttpRequest Http, Request, Me.TimeoutMS, UseAsync
137
125
138
126
' Before execute and http open hooks for authenticator
139
127
If Not Me.Authenticator Is Nothing Then
@@ -144,11 +132,7 @@ Private Sub HttpSetup(ByRef Http As Object, ByRef Request As RestRequest, Option
144
132
Http.Open Request.MethodName(), Request.FullUrl(Me.BaseUrl), UseAsync
145
133
End If
146
134
147
- ' Set request headers
148
- Dim HeaderKey As Variant
149
- For Each HeaderKey In Request.Headers.keys()
150
- Http.setRequestHeader HeaderKey, Request.Headers(HeaderKey)
151
- Next HeaderKey
135
+ RestHelpers.SetHeaders Http, Request
152
136
End Sub
153
137
154
138
Private Sub Class_Initialize ()
0 commit comments