2013-04-09 92 views
4

我写了一个ASP脚本来生成JSON数据/字符串。我如何将这些数据发送到Web服务?我被给了下面的信息,我没有访问服务器来注册任何dll文件。我做了一些搜索,看到我应该使用XMLHttpRequest,但不知道如何做到这一点。如何使用Classic ASP从xmlhttprequest发送Json对象(或字符串数​​据)?

请帮忙。谢谢。

连接到Web服务 Web服务通过HTTP协议工作。建议此Web服务在生产后使用安全套接字层(HTTPS)。该Web服务旨在与URL配合使用:http://thedomain.com/api/push

该站点在标头中使用验证令牌以防止爬网程序干扰Web服务。发送数据时,添加一个名为HTTP_TOKENKEY的标头,其值为ABCDEFGHIJKL。这是推荐使用HTTPS的原因之一。 Web服务将在请求的POST中查找JSON数据并将JSON响应发送回客户端。

这是我迄今为止


strJSONToSend = theevent 

webserviceurl = "http://thedomain.com/api/push" 

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

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

results = objRequest.send (strJSONToSend) 
write (results) 

set objJSONDoc = nothing 
set objResult = nothing 

这冻结了,所以没有任何

+0

此线程中是否有线索? http://stackoverflow.com/questions/15440378/equivalent-of-file-get-contentsphp-input-in-classic-asp/15451764#15451764 – John 2013-04-09 23:47:42

+0

没有,我可以给我:( – nkman 2013-04-10 13:22:14

+3

你应该使用MSXML2.ServerXMLHTTP而不是xmlhttp,因为xmlhttp使用的WinInet在服务器端不受支持 – ulluoink 2013-04-11 11:56:35

回答

0

下面是一些代码,我在这个网址适合您的情况以前出版:

http://naterice.com/articles/69

strJSONToSend = theevent 
webserviceurl = "http://thedomain.com/api/push" 

sResponseHTML = GetHTTP(strJSONToSend, webserviceurl) 
If len(HTTPErrorHandeler) > 0 Then 
    strResponse = HTTPErrorHandeler 
Else 
    strResponse = sResponseHTML 
End If 

Response.Write strResponse 

Function GetHTTP(sSendHTML, sURL) 
    'This script is provided under the Creative Commons license located' 
    'at http://creativecommons.org/licenses/by-nc/2.5/ . It may not' 
    'be used for commercial purposes with out the expressed written consent' 
    'of NateRice.com' 
    Set oHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") 
    oHTTP.Open "POST", sURL, false 
    oHTTP.setRequestHeader "Content-Type", "application/json; charset=UTF-8" 
    oHTTP.setRequestHeader "HTTP_TOKENKEY","ABCDEFGHIJKLMNOPQ" 
    oHTTP.setRequestHeader "SOAPAction", webserviceurl 

    On Error Resume Next 
    oHTTP.send sSendHTML 
    sHTTPResponse = oHTTP.responseText 

    If Err.Number = 0 Then 
    GetHTTP = sHTTPResponse 
    Else 
    GetHTTP = HTTPErrorHandeler 
    End If 
    On Error Goto 0 

    Set oHTTP = Nothing 
End Function 


Function HTTPErrorHandeler 
    'This script is provided under the Creative Commons license located' 
    'at http://creativecommons.org/licenses/by-nc/2.5/ . It may not' 
    'be used for commercial purposes with out the expressed written consent' 
    'of NateRice.com' 
    If Err.Number <> 0 Then 
    HTTPErrorHandeler = "ERROR <br />" & _ 
      " ERR Number: " & Err.Number & " <br />" & _ 
      " ERR Description: " & Err.Description 
    Else 
    HTTPErrorHandeler = "" 
    End If 
End Function