2008-11-18 12 views
9

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

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

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

ответ

17

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

this.Context.Request.QueryString["id"]; 
+0

это какой объект? – AnthonyWJones

+0

Класс webservice. В этом примере это «Сервис»; –

2

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

2

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

Этот параметр был window.location (весь адрес страницы) в моей яваскрипта функции на странице .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"]; 

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