这是问题所在:我有以下代码
Dim Client As New WebClient
Dim Request As New WebRequest
Dim Response As WebResponse
Dim responseData As Scripting.Dictionary
Request.UserAgent = VBA.Environ("USERNAME")
Request.AddHeader "AuthToken", m_token
Request.AddHeader "APIKey", m_key
Request.Method = WebMethod.HttpPost
Dim Auth As New HttpBasicAuthenticator
Auth.Setup "username", "Password"
Set Client.Authenticator = Auth
Dim Body As New Dictionary
If condition1 Then
Body.Add "status", "open"
Else
Body.Add "status", "closed"
End If
Client.BaseUrl = server_api & "Tasks/" & m_id
Set Request.Body = Body
Set Response = Client.Execute(Request)
If (Response.StatusCode = Ok) Then
Debug.Print TypeName(Response.Data) 'returns Dictionary
Set responseData = Response.Data '.Item(1)
Debug.Print "ID: " & responseData("id")
Debug.Print "message: " & responseData("message")
End If
请求成功执行,程序没有错误,并且Response.data
有 typename Dictionary
,但消息是:
表中不存在“statut”
因此,我尝试通过将“状态”名称更改为所需的“tableColunm”来解决此问题,该名称在数据库中具有 int32 作为类型。
应用的更改在以下代码中,并带有注释结果:
If condition1 Then
Body.Add "tableColunm", 1 'I tried also with "1"
Else
Body.Add "tableColunm", 2 ' I tried also with "2"
End If Client.BaseUrl = server_api & "Tasks/" & m_id
Set Request.Body = Body
Set Response = Client.Execute(Request)
If (Response.StatusCode = Ok) Then
Debug.Print TypeName(Response.Data) 'returns Collection
Set responseData = Response.Data '.Item(1) ' error here, and the program crashed
Debug.Print "ID: " & responseData("id")
Debug.Print "message: " & responseData("message")
End If
现在的typenameResponse.data
是collection,我认为这就是程序崩溃的原因
有什么帮助吗?谢谢