HTTPS POST请求VBA

时间:2019-03-11 07:34:28

标签: vba http outlook

我想为我的ServiceNow实例API创建POST请求。但是我不知道如何使用库VBA-Web。 我想在ServiceNow的表中创建一行。 我的代码:

Sub ToRequestSN()

Dim Body As New Dictionary
Body.Add "u_any_string", "test"
Body.Add "u_any_numeral", 12

Dim Client As New WebClient
Dim Response As WebResponse
Set Response = Client.PostJson("https://instance.sn.ru/api/now/table/u_table_test", Body)

Debug.Print Response.Content

End Sub

但是我收到了此消息-

{"error":{"message":"User Not Authenticated","detail":"Required to provide Auth information"},"status":"failure"}

如何使用VBA-Web登录?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我确实发送了选定的邮件(发件人的电子邮件)并传递给“立即服务”。

Sub RequestToSN()

Dim Client As New WebClient
Dim Response As WebResponse
Dim Auth As New HttpBasicAuthenticator
Dim Body As New Dictionary
Dim myOlSel As Outlook.Selection
Dim oMail As Outlook.MailItem
Dim myOlExp As Outlook.Explorer


MsgTxt = ""
 Set myOlExp = Application.ActiveExplorer
 Set myOlSel = myOlExp.Selection
For x = 1 To myOlSel.Count
 If myOlSel.Item(x).Class = OlObjectClass.olMail Then

 Set oMail = myOlSel.Item(x)
 MsgTxt = MsgTxt & oMail.SenderName
 ''Date = Date & oMail.CreationTime
 End If
 Next x


Body.Add "u_any_string", MsgTxt
Body.Add "u_any_numeral", 123

Auth.Setup _
    Username:="user", _
    Password:="user"

Set Client.Authenticator = Auth

Set Response = Client.PostJson("https://service.sn.com/api/now/table/u_table_test", Body)

End Sub