Chegando à string de consulta (array pedido GET) dentro de um serviço web em .NET
-
08-07-2019 - |
Pergunta
Eu estou olhando para encontrar uma maneira de acessar a string de consulta .net contido no objeto de solicitação ASP.NET padrão dentro de um serviço web. Em outras palavras, se eu definir um serviço web SOAP a este url:
http:? //Localhost/service.asmx id = 2
Posso acessar a variável ID Get?
Solução
Eu apenas olhei para "Request" do contexto em arquivo asmx e eu vi isso. Mas eu não tenho certeza se é certo.
this.Context.Request.QueryString["id"];
Outras dicas
HttpContext.Current.Request.QueryString [ "id"]
Uma vez que você perguntar, eu acho que não há nenhuma HttpContext.Current.Request?
Embora a pesquisa para a solução do mesmo problema i decidiu tomar abordagem diferente. Meu string de consulta estava lotado com muitas variáveis ??e desde que eu não era capaz de dados de cadeia de consulta de acesso do serviço de web, e eu também não queria enviar cada variável string de consulta como um parâmetro separado, preparei o meu método web que esperar um parâmetro de seqüência adicional.
Esse parâmetro foi window.location (inteira url da página) na minha função javascript na página aspx
Uma vez eu tive url no meu serviço web, o resto foi bastante stright frente
Uri myRef = new Uri(stringMyWindowLocationParameter);
System.Collections.Specialized.NameValueCollection mojQuery = HttpUtility.ParseQueryString(myRef.Query);
dentro Agora a minha string de consulta está contido myRef objeto e é assim que eu chamá-lo
// Instead trying to request query string like this
string myId = HttpContext.Current.Request.QueryString["id"];
// ... I called it like this
string myId = myRef["id"];
Talvez não seja a maneira mais elegante, mas resolveu o meu problema.