在.NET中的Web服务中获取查询字符串(GET请求数组)

在.NET中的Web服务中获取查询字符串(GET请求数组)

问题描述:

我正在寻找一种方法来访问包含在Web服务内部的标准ASP.NET请求对象中的.net查询字符串。换句话说,如果我设置一个SOAP Web服务到这个网址:在.NET中的Web服务中获取查询字符串(GET请求数组)

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

我可以访问ID获取变量?

我只是在asmx文件中查找上下文的“请求”,我看到了。但我不确定是否正确。

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

这代表什么对象? – AnthonyWJones 2008-11-18 09:28:09

既然你问了,我估计没有HttpContext.Current.Request?

HttpContext.Current.Request.QueryString [“ID”]

当搜索同样的问题,我决定采取不同的方法的解决方案。 我的查询字符串打包了很多变量,因为我无法从Web服务访问查询字符串数据,而且我也不想将每个查询字符串变量作为单独的参数发送,所以我准备了我的Web方法以期望一个附加的字符串参数。

这个参数是在我的javascript函数window.location的(页面的整个URL).aspx页面中

一次我在Web服务有网址,其余是相当挺直向前

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

也许这不是最优雅的方式,但它解决了我的问题。