WebGet不恰当地添加尾部斜杠

时间:2010-12-16 10:14:18

标签: wcf rest dynamic client parameter-passing

我有一个休息客户端试图拨打http://my-server/section1/section2?param1=foo

http://my-server/section1/section2?param1=foo HTTP://我的服务器/ sectionX /章节Y参数2 =酒吧 http://my-server/sectionA/sectionC?param3=kuku

注意查询参数键名更改(param1,param2,param3 ...)

我实施的合同是

[WebGet(UriTemplate = "")]
        [OperationContract]
        Message MyMethod();

然而,这将导致实际的uri被称为: http://my-server/section1/section2/?param1=foo

请注意,在section2和?

之间添加了一个尾部斜杠

有人知道如何预防吗?

大卫

PS 请注意 1)将最后一段+参数作为参数添加到MyMethod(并使用UriTemplate =“/ {lastSegment})的技巧将导致问号(?)被解码... 这会破坏通话请求 2)完全删除UriTemplate将导致methodname成为uri的一部分......

1 个答案:

答案 0 :(得分:2)

您真的不应该在客户端上使用WCF合同来调用REST服务。只需使用HTTPWebRequest或HttpClient进行这些调用。