首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将UriTemplate设置为Web?

如何将UriTemplate设置为Web?
EN

Stack Overflow用户
提问于 2015-04-22 09:12:49
回答 1查看 1.5K关注 0票数 0

如何像这样设置UriTepmlate Attr:

/FunctionName?{json_data}

因为使用这个web服务的人用这种方式叫什么?

例如:http://localhost/xxx/service/Func?{"x":"aaa","y":"bbb"}

我试过了

代码语言:javascript
复制
[OperationContract]
    [WebGet(UriTemplate = "/Func?{request}",
        BodyStyle = WebMessageBodyStyle.Bare,
        ResponseFormat = WebMessageFormat.Json)]
    Result Func(string request);

而不是我得到的错误:

UriTemplate '/Func?{request}‘无效;查询字符串的每个部分必须是表单' name’或表单'name=value',其中name是一个简单的文字。有关详细信息,请参阅UriTemplate文档。参数名称:模板

当我设置的时候

代码语言:javascript
复制
 [OperationContract]
    [WebGet(UriTemplate = "/Func?request={request}",
        BodyStyle = WebMessageBodyStyle.Bare,
        ResponseFormat = WebMessageFormat.Json)]
    Result Func(string request);

它运行得很好,但这不是他们想要的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-22 11:14:52

你不能这样设置。这是因为"?“在URL中,表示URL参数将跟随,并且URL参数总是以"name=value“形式出现

你要么可以

代码语言:javascript
复制
[OperationContract]
[WebGet(UriTemplate = "/Func?request={request}",
    BodyStyle = WebMessageBodyStyle.Bare,
    ResponseFormat = WebMessageFormat.Json)]
Result Func(string request);

代码语言:javascript
复制
[OperationContract]
[WebGet(UriTemplate = "/Func/{request}",
    BodyStyle = WebMessageBodyStyle.Bare,
    ResponseFormat = WebMessageFormat.Json)]
Result Func(string request);

如果像上一个示例一样执行此操作,则参数请求只能是一个字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29792836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档