2012-04-16 268 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