Получение строки запроса (массив запросов GET) внутри веб-службы в .NET

StackOverflow https://stackoverflow.com/questions/298219

  •  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"];

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top