我試圖在IIS5.1/ASP-classic(XP-Pro開發框)下實現REST接口。到目前爲止,我無法找到在PUT HTTP方法下檢索請求內容變量所需的咒語。在IIS5.1和ASP-classic下HTTP PUT請求的參數檢索?
有了這樣的請求:
PUT http://localhost/rest/default.asp?/record/1336
Department=Sales&Name=Jonathan%20Doe%203548
我怎麼讀Department
和Name
值到我的ASP代碼嗎?
Request.Form
似乎只支持POST請求。 Request.ServerVariables
只讓我看到標題信息。 Request.QueryString
沒有得到我的內容要麼...
基於從AnthonyWJones和ARS的答覆我走下了BinaryRead路徑,並與下面的第一次嘗試想出了:
var byteCount = Request.TotalBytes;
var binContent = Request.BinaryRead(byteCount);
var myBinary = '';
var rst = Server.CreateObject('ADODB.Recordset');
rst.Fields.Append('myBinary', 201, byteCount);
rst.Open();
rst.AddNew();
rst('myBinary').AppendChunk(binContent);
rst.update();
var binaryString = rst('myBinary');
var contentString = binaryString.Value;
var parameters = {};
var pairs = HtmlDecode(contentString).split(/&/);
for(var pair in pairs) {
var param = pairs[pair].split(/=/);
parameters[param[0]] = decodeURI(param[1]);
}
This blog post by David Wang和HtmlDecode()
函數取自博客.msdn.com上的Andy Oakley,也有很大幫助。
做這個分裂和手工逃脫,我敢肯定有一個1001錯誤在這裏,但至少我再次移動。謝謝。
不幸的是,所述主體的內容格式是非常固定的。看起來我必須追查二進制讀取。 – aczarnowski 2009-07-08 21:37:55