2012-04-16 271 views
1

我基本上是經典ASP和VBScript中的noob,所以我想獲得一些幫助來實現我在這裏的目標。我已經構建了一個JSON字符串,並且需要使用VBScript將其發送到RESTful Web服務。我怎麼做?從經典ASP發送JSON字符串到RESTful WS

我有一些代碼,但我不認爲它的工作原理:

strJSONToSend = JSONstr 'this is where I use my built JSON string 

webserviceurl = "url here" 

Set objRequest = Server.createobject("MSXML2.XMLHTTP.3.0") 
objRequest.open "POST", webserviceurl, False 

objRequest.setRequestHeader "Content-Type", "application/json; charset=UTF-8" 
objRequest.setRequestHeader "CharSet", "utf-8" 
objRequest.setRequestHeader "SOAPAction", webserviceurl 

Set objJSONDoc = Server.createobject("MSXML2.DOMDocument.3.0") 
objJSONDoc.loadXml strJSONToSend 
objRequest.send objJSONDoc 

set objJSONDoc = nothing 
set objResult = nothing 
+1

什麼不正確?代碼看起來很好。不需要將JSON轉換爲XML,就像Nathan指出的那樣。 – 2012-04-17 08:59:07

+1

順便說一下,使用'MSXML2.ServerXMLHTTP.3.0'。 XMLHTTP不應該用在服務器端代碼中。你也確定你需要創建這個「CharSet」頭文件,通常「Content-Type」指定了實體主體的字符集,並且你已經這樣做了。 – AnthonyWJones 2012-04-17 13:10:32

回答

3

你並不需要將JSON轉換爲XML(因爲它是JSON和XML不是所有):

strJSONToSend = JSONstr 'this is where I use my built JSON string 

webserviceurl = "url here" 

Set objRequest = Server.createobject("MSXML2.XMLHTTP.3.0") 
objRequest.open "POST", webserviceurl, False 

objRequest.setRequestHeader "Content-Type", "application/json; charset=UTF-8" 
objRequest.setRequestHeader "CharSet", "utf-8" 
objRequest.setRequestHeader "SOAPAction", webserviceurl 

objRequest.send strJSONToSend 

set objJSONDoc = nothing 
set objResult = nothing