@@ -19,7 +19,6 @@ Attribute VB_Exposed = True
1919' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
2020Option Explicit
2121
22- Private Const UserAgent As String = "Excel Client v2.0.1 (https://github.com/timhall/Excel-REST)"
2322Private Const DefaultTimeoutMS As Integer = 5000
2423
2524
@@ -48,7 +47,7 @@ Public Function Execute(Request As RestRequest) As RestResponse
4847 Dim HeaderKey As Variant
4948
5049 On Error GoTo ErrorHandling
51- Set Http = CreateObject("MSXML2.ServerXMLHTTP" )
50+ Set Http = CreateObject("MSXML2.ServerXMLHTTP.6.0 " )
5251 HttpSetup Http, Request, False
5352
5453 ' Send the request
@@ -63,8 +62,8 @@ ErrorHandling:
6362
6463 If Err.Number <> 0 Then
6564 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" )
6867 Err.Clear
6968 Else
7069 ' Rethrow error
@@ -92,7 +91,7 @@ Public Function ExecuteAsync(Request As RestRequest, Callback As String, Optiona
9291 On Error GoTo ErrorHandling
9392
9493 ' Setup the request
95- Set Http = CreateObject("MSXML2.ServerXMLHTTP" )
94+ Set Http = CreateObject("MSXML2.ServerXMLHTTP.6.0 " )
9695 HttpSetup Http, Request, True
9796 Request.Callback = Callback
9897 Request.CallbackArgs = CallbackArgs
@@ -122,18 +121,7 @@ End Function
122121' ============================================= '
123122
124123Private 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
137125
138126 ' Before execute and http open hooks for authenticator
139127 If Not Me.Authenticator Is Nothing Then
@@ -144,11 +132,7 @@ Private Sub HttpSetup(ByRef Http As Object, ByRef Request As RestRequest, Option
144132 Http.Open Request.MethodName(), Request.FullUrl(Me.BaseUrl), UseAsync
145133 End If
146134
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
152136End Sub
153137
154138Private Sub Class_Initialize ()
0 commit comments