2014-11-16 17 views
6

Próba wysłania żądania JSON POST do interfejsu API HTTP (PushBullet). Ale w obliczu błędu w kodzie. Każda pomoc doceniona. Reference to the document to send push notificationJak przesłać dane JSON przez HTTP API używając VBScript?

Dim objXmlHttpMain , URL 

strJSONToSend = {"type": "note", "title": "Alert", "body": "Lorem Ipsum Lorem Ipsum Lorem Ipsum."} 

URL="https://api.pushbullet.com/v2/pushes" 
Set objXmlHttpMain = CreateObject("Msxml2.ServerXMLHTTP") 
on error resume next 
objXmlHttpMain.open "POST",URL, False 
objXmlHttpMain.setRequestHeader "Authorization", "Bearer <api secret id>" 
objXmlHttpMain.setRequestHeader "Content-Type", "application/json" 


objXmlHttpMain.send strJSONToSend 

set objJSONDoc = nothing 
set objResult = nothing 

Odpowiedz

11

Idąc w opałach tutaj, ponieważ nie uznają to za konieczne uwzględnienie rzeczywistej komunikat o błędzie. Najprawdopodobniej otrzymujesz błąd "nieprawidłowego znaku" w linii 3. Dzieje się tak, ponieważ musisz zdefiniować ciąg JSON jako rzeczywisty ciąg znaków.

Zmień to:

strJSONToSend = {"type": "note", "title": "Alert", "body": "Lorem Ipsum Lorem Ipsum Lorem Ipsum."} 

w tym:

strJSONToSend = "{""type"": ""note"", ""title"": ""Alert"", ""body"": ""Lorem Ipsum Lorem Ipsum Lorem Ipsum.""}" 

Edit: Jako marginesie, jeśli używasz On Error Resume Next w kodzie zawsze put odpowiednią obsługę błędów w miejscu, a także utrzymywać ją jak najbardziej zlokalizowaną:

On Error Resume Next 'enable error handling 
objXmlHttpMain.open "POST",URL, False 
If Err Then   'handle errors 
    WScript.Echo Err.Description & " [0x" & Hex(Err.Number) & "]" 
    WScript.Quit 1 
End If 
On Error Goto 0  'disable error handling again 
+0

Wielkie dzięki, które zadziałało! Przepraszam, jestem bardzo nowy w vbscript! –