Я работаю над сценарием asp на стороне сервера. Он должен получать поток xml из веб-приложения и сохранять его в XML-файле. Проблема в том, что я не смог прочитать этот поток. Я использовал разные методы, и я не могу найти правильный. Еще одна вещь для тестирования. Я использую консоль для отдыха для Chrome и, похоже, работает без проблем, но когда мой клиент отправляет поток, я не могу его прочитать, и они получают ошибку кода 500.Извлечение данных из httprequest
сначала я попытался чтении поток в двоичном режиме с последующим превращением его
function readContent()
dim a,b
a=Request.TotalBytes
b=Request.BinaryRead(a)
writeInLogFile(" ")
writeInLogFile(Time & Request.ServerVariables("ALL_RAW"))
writeInLogFile(Time & " Data read in binary mode with a size of " & a)
readContent = URLDecode(BytesToStr(b))
writeInLogFile(Time & " the length of the converted string is : "& len(readContent))
end function
, но вот что я получаю на мой лог-файл
17:12:10Content-Length: 8416 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Authorization: Basic Host: User-Agent: Jakarta Commons-HttpClient/2.0.2 17:12:10 Data read in binary mode with a size of 8416 17:12:10 Converting binary to string
, а затем он падает, когда я пытаюсь написать преобразованный строка
затем я перешел на Request.Form
function readContent()
'writeInLogFile(Time & " " & URLDecode(Request.Form))
writeInLogFile(Time & Request.ServerVariables("ALL_RAW"))
readContent = URLDecode(Request.Form)
writeInLogFile(Time & " the length of the converted string is : "& len(readContent))
end function
но еще раз при тестировании через консоль отдыха все работает, и когда вы действительно получаете поток от моего клиента, он просто падает.
Любой сталкивался с подобной проблемой, или есть идея, как я могу решить эту вещь
заранее спасибо
обновление:
здесь функция декодирования
FUNCTION URLDecode(str)
'// This function:
'// - decodes any utf-8 encoded characters into unicode characters eg. (%C3%A5 = å)
'// - replaces any plus sign separators with a space character
'//
'// IMPORTANT:
'// Your webpage must use the UTF-8 character set. Easiest method is to use this META tag:
'// <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
'//
Dim objScript
Set objScript = Server.CreateObject("ScriptControl")
objScript.Language = "JavaScript"
URLDecode = objScript.Eval("decodeURIComponent(""" & str & """.replace(/\+/g,"" ""))")
Set objScript = NOTHING
'writeInLogFile(Time & " the length of the converted string is : "& len(URLDecode))
END FUNCTION
У вас отсутствует соответствующий код, как выглядит источник для этих двух функций? 'URLDecode (BytesToStr (б))'. Но, глядя на то, что вы пытаетесь сделать, я бы сказал, что проблема в функции 'URLDecode()'. – Lankymart
Нет никакой ошибки в функции URLDecode(), как я сказал при локальном тестировании (Rest console), все работает плавно, и функция работает отлично. – bibo
Угадайте, тогда нет проблем, вы, очевидно, знаете, что делаете. Удачи. – Lankymart