Getting to the query string (GET request array) inside a web service in .NET

大憨熊 提交于 2019-12-18 16:07:36

问题


I'm looking to find a way to access the .net query string contained in the standard ASP.NET request object inside a web service. In other words if I set a SOAP web service to this url:

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

Can I access the ID Get variable?


回答1:


I just looked for "Request" of the context in asmx file and I saw that. But I'm not sure if it is right.

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



回答2:


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




回答3:


Since you ask, I guess there is no HttpContext.Current.Request ?




回答4:


While searching for the solution of the same problem i decided to take different approach. My query string was packed with lots of variables and since I was not able to access query string data from the web service, and I also did not want to send each query string variable as a separate parameter, I prepared my web method to expect one aditional string parameter.

That parameter was window.location (entire url of the page) in my javascript function on .aspx page

Once I had url in my web service, the rest was quite stright forward

Uri myRef = new Uri(stringMyWindowLocationParameter);
System.Collections.Specialized.NameValueCollection mojQuery = HttpUtility.ParseQueryString(myRef.Query);

Now my query string is contained inside myRef object and this is how I call it

// Instead trying to request query string like this
string myId = HttpContext.Current.Request.QueryString["id"];

// ... I called it like this
string myId = myRef["id"];

Maybe it's not the most elegant way but it solved my problem.



来源:https://stackoverflow.com/questions/298219/getting-to-the-query-string-get-request-array-inside-a-web-service-in-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!