2012-09-10 151 views
3

我想將數據從Textarea發佈到經典ASP腳本,該腳本更新本地計算機上的MS SQL,然後發佈到另一臺服務器上的PHP腳本。但是,下面的操作不起作用,因爲它會切斷textarea的數據。它爲HTML和其他數據提供了特殊字符。通過HTTP請求發送發佈數據POST

所以我的問題是,如何通過使用ASP Classic的POST來傳遞這些數據?

我一直在尋找整天,所以希望有人能夠賜教,謝謝!

strUrl = "http://www.example.com/index.php" 
    requestData = request("request") 
    requestData2 = request("request2") 

    strData = "request=" & requestData & "&request2=" & requestData2 

    postHTML (strUrl, strData) 

function postHTML (strUrl, strData) 
    Set xmlHttp = Server.Createobject("MSXML2.ServerXMLHTTP") 
    xmlHttp.Open "POST", strUrl, False 
    xmlHttp.setRequestHeader "User-Agent", "asp httprequest" 
    xmlHttp.setRequestHeader "content-type", "application/x-www-form-urlencoded" 
    xmlHttp.Send strData 
    postHTML = xmlHttp.responseText 
    xmlHttp.abort() 
    set xmlHttp = Nothing 
end function 

例如,如果一個&在requestdata2,即&後什麼被截斷,因爲它認爲它是開始一個新的字符串。但我希望能夠通過這一點。

唯一的解決方案我現在可以想到:做一個字符串替換爲特殊字符,如=&和恢復他們與另一個字符串替換在PHP服務器上。然而,這不是我想完成這項任務。我希望發送帖子的正確方式。

回答

2

你需要URL編碼的參數值,所以改變這一行...

strData = "request=" & requestData & "&request2=" & requestData2 

...到...

strData = "request=" & Server.UrlEncode(requestData) & "&request2=" & Server.UrlEncode(requestData2) 

接收服務器會自動解碼值。

+0

非常感謝你的回答。我會對此進行測試並儘快給出信用。 –

+0

工作就像一個魅力! –