Получение строки запроса (массив запросов GET) внутри веб-службы в .NET
-
08-07-2019 - |
Вопрос
Я ищу способ получить доступ к строке запроса .net, содержащейся в стандартном объекте запроса ASP.NET внутри веб-службы.Другими словами, если я установлю веб-службу SOAP для этого URL-адреса:
http://localhost/service.asmx?id=2
Могу ли я получить доступ к переменной ID Get?
Решение
Я только что искал " Запрос " контекста в файле asmx, и я увидел это. Но я не уверен, правильно ли это.
this.Context.Request.QueryString["id"];
Другие советы
HttpContext.Current.Request.QueryString["id"]
Поскольку вы спрашиваете, я думаю, что нет HttpContext.Current.Request?
При поиске решения той же проблемы я решил использовать другой подход. Моя строка запроса была заполнена множеством переменных, и так как я не смог получить доступ к данным строки запроса из веб-службы, и я также не хотел отправлять каждую переменную строки запроса в качестве отдельного параметра, я подготовил свой веб-метод для ожидания одного параметр дополнительной строки.
Этот параметр был window.location (полный URL-адрес страницы) в моей функции JavaScript на странице .aspx
После того, как у меня появился URL в моем веб-сервисе, все остальное было довольно прямо вперед
Uri myRef = new Uri(stringMyWindowLocationParameter);
System.Collections.Specialized.NameValueCollection mojQuery = HttpUtility.ParseQueryString(myRef.Query);
Теперь моя строка запроса содержится внутри объекта myRef , и я так ее называю
// Instead trying to request query string like this
string myId = HttpContext.Current.Request.QueryString["id"];
// ... I called it like this
string myId = myRef["id"];
Возможно, это не самый элегантный способ, но он решил мою проблему.