Я пытаюсь реализовать интерфейс REST под IIS5.1 / ASP-classic (блок разработки XP-Pro). Пока что я не могу найти заклинание, необходимое для получения переменных содержимого запроса по методу PUT HTTP.
с запросом типа:
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]);
}
Эта запись в блоге Дэвида Вана и функция HtmlDecode()
, взятая у Энди Оукли на blogs.msdn.com, также очень помогли.
Делая это разделение и убегая вручную, я уверен, что здесь 1001 ошибка, но, по крайней мере, я снова двигаюсь. Спасибо.