发送JSON对象作为POST请求

我试图从Excel中的VBA应用程序发送JSON对象。 下面的代码正确地发送请求,但是我不知道如何使用正文中的JSON对象进行请求。

Sub Post() Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") URL = "http://localhost:3000/test" objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "Content-type", "application/x-www-form- urlencoded" objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("test=6") End Sub 

如果我尝试发送“{test:6,test2:7}”并在服务器上logging请求正文,我得到{'{parts:6,test:7}':'}}

正如你可能已经知道的那样,JSON结构确实会产生严重的问题。 在你的情况下,我会说所有关于引号,如果你试图validation你的{test:6, test2: 7} ,你可以在这里看到。

尝试下面的代码。 对我来说看起来似乎是合理的:

 Sub Post() Dim URL As String, JSONString As String, objHTTP as Object Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") URL = "http://localhost:3000/test" objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "Content-type", "application/x-www-form- urlencoded" objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" JSONString = "{""test"": 6,""test2"":7}" objHTTP.Send JSONString End Sub