2013-04-09 93 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