我有一个休息客户端试图拨打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的一部分......
答案 0 :(得分:2)
您真的不应该在客户端上使用WCF合同来调用REST服务。只需使用HTTPWebRequest或HttpClient进行这些调用。