Почему вы проверяете поток запросов на параметры строки запроса? В .Net существует множество встроенных типов для работы с HTTP-запросами. Вы можете легко получить правильную коллекцию NameValueCollection из строки запроса с помощью следующего кода:
NameValueCollection queryStringValues =
HttpUtility.ParseQueryString(HttpContext.Current.Request.Query.ToLower());
string value = queryStringValues["my_key"];
В вашем коде вы StreamReader
читаете поток и присваиваете его строковой переменной с именем contents
. Однако, когда вы присваиваете значение строке a
, вы получаете доступ к переменной с именем context
, которая, как я полагаю, действительно HttpContext.Current
. Затем вы используете объект Request
как NameValueCollection
. Когда вы получаете доступ к коллекции Request
, она ищет параметры POST и GET, проверяя Request.Form
и Request.QueryString
.
Если что-то дальше по конвейеру HTTP-запросов не изменит запрос по маршруту, вы не потеряете параметры. Используйте прокси-инструмент, такой как Fiddler или Charles , чтобы проверить запрос, когда он покидает браузер.