Получение к строке запроса (массив запросов GET) внутри веб-службы в .NET - PullRequest
9 голосов
/ 18 ноября 2008

Я ищу способ доступа к строке запроса .net, содержащейся в стандартном объекте запроса ASP.NET внутри веб-службы. Другими словами, если я установлю SOAP веб-сервис на этот URL:

http://localhost/service.asmx?id=2

Могу ли я получить доступ к переменной Get ID?

Ответы [ 4 ]

17 голосов
/ 18 ноября 2008

Я просто искал "Запрос" контекста в файле asmx, и я увидел это. Но я не уверен, правильно ли это.

this.Context.Request.QueryString["id"];
6 голосов
/ 18 ноября 2008

HttpContext.Current.Request.QueryString [ "ID"]

2 голосов
/ 19 августа 2009

При поиске решения той же проблемы я решил использовать другой подход. Моя строка запроса была заполнена множеством переменных, и так как я не смог получить доступ к данным строки запроса из веб-службы, и я также не хотел отправлять каждую переменную строки запроса в качестве отдельного параметра, я подготовил свой веб-метод для ожидания одного параметр дополнительной строки.

Этот параметр был 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"];

Возможно, это не самый элегантный способ, но он решил мою проблему.

2 голосов
/ 18 ноября 2008

Так как вы спрашиваете, я думаю, что нет HttpContext.Current.Request?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...