【问题标题】:WebGet adds trailing slash inappropriatelyWebGet 不恰当地添加斜杠
【发布时间】:2011-05-26 11:10:51
【问题描述】:

我有一个休息客户端,它试图调用http://my-server/section1/section2?param1=foo

http://my-server/section1/section2?param1=foo http://my-server/sectionX/sectionY?param2=bar 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 将导致方法名成为 uri 的一部分...

【问题讨论】:

    标签: wcf rest dynamic client parameter-passing


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-29
      • 2018-06-29
      • 2012-01-12
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2015-10-23
      相关资源
      最近更新 更多