0

我想创建一个 WCF RESTful 服务方法,它可以在查询字符串中接收任意数量的参数,并将它们发送到方法上的某种类型的键、值集合参数。例如:

如果我打电话

“http://localhost/Service.svc/DoWork?p1=test&p2=testAgain”

我希望方法实现看起来像:

    [WebGet]
    public void DoWork(Dictionary<string,string> values)
    {
        // Add your operation implementation here
        return;
    }

并且values参数将包含具有各自值的 p1、p2 键。

我怎样才能做到这一点?我的一种方法是定义一个自定义 UriTemplate 并将所有内容发送到一个字符串参数并将其解析出来,但是“&”字符正在抛出和危险的论坛请求异常。我不禁想到有一种更简单的方法可以实现这一目标。

4

2 回答 2

1

您可以通过 访问请求查询字符串WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.Query。然后,您可以使用HttpUtility.ParseQueryString将其解析为 a NameValueCollection,这与Dictionary<string, string>您想要的 a 类似。

于 2012-05-31T06:10:20.830 回答
1

你能从 HttpContext.Current.Request.QueryString 对象中提取这些信息吗?

于 2012-05-30T22:53:59.650 回答