Допустим следующий URL:
"http://server/application1/TestFile.aspx?Library=Testing&Filename=Documents & Functions + Properties.docx&Save=true"
Я использую HttpUtility.UrlEncode () для кодирования значения параметра Filename и создаю следующий URL:
"http://server/application1/TestFile.aspx?Library=Testing&Filename=Documents%20%26%20Functions%20%2B%20Properties.docx&Save=true"
Я отправляю следующий (закодированный вариант) запроса от клиента в веб-приложение C #. На сервере, когда я обрабатываю запрос, у меня есть проблема. Переменная HttpRequest содержит частично закодированную строку запроса. То есть, когда я пытаюсь использовать или быстро просмотреть следующие свойства HttpRequest, они имеют следующие значения.
Property = Value
================
HttpRequest.QueryString = "{Library=Testing&Filename=Documents+&+Functions+++Properties.docx&Save=true}"
HttpRequest.Url = "{http://server/application1/TestFile.aspx?Library=Testing&Filename=Documents & Functions + Properties.docx&Save=true}"
HttpRequest.Url.AbsoluteUri = "http://server/application1/TestFile.aspx?Library=Testing&Filename=Documents%20&%20Functions%20+%20Properties.docx&Save=true"
Я также проверил следующие свойства, но все они имеют декодированное значение & value. Однако все остальные значения остаются правильно закодированными (например, пробел равен% 20).
HttpRequest.Url.OriginalString
HttpRequest.Url.Query
HttpRequest.Url.PathAndQuery
HttpRequest.RawUrl
Нет способа правильно прочитать значение параметра Filename. Я что-то упустил?