【问题标题】:wcf json client trailing forward slash escapedwcf json客户端尾部正斜杠转义
【发布时间】:2012-03-01 22:25:22
【问题描述】:

我使用 WCF 作为客户端来联系接受并返回 JSON 数据的 REST 服务。

服务位于 http://127.0.0.1/REST/get_details/ --注意尾部的正斜杠

不幸的是,WCF 在调用 url 之前转义了尾部正斜杠,因此调用失败。我不能使用 WebInvoke 的 UriTemplate 属性,因为这是一个 webscript 调用,所以它是不允许的,并且 ActionReplyAction [OperationContract] 用于 SOAP 而不是 REST,所以我也不能使用它们。

此调用导致的错误 url 是:/REST/get_details_x002F_

如何阻止 WCF 弄乱 url?

[ServiceContract(Namespace="http://127.0.0.1/REST/")]
public interface IDetailsSvc
{
    [OperationContract(Name = "get_details/")]
    [WebInvoke(
        Method = "POST",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        ResponseFormat = WebMessageFormat.Json,
        RequestFormat = WebMessageFormat.Json)]
    DetailsResponse GetDetails(string id);
}

【问题讨论】:

  • 幸运的是,我能够要求另一端的开发人员不需要正斜杠,但我仍然想看看是否有人对此有更好的解决方案。你并不总是能够要求改变这些事情。
  • 您应该真正删除尾部斜杠,这不是必需的,并且会导致您发现的混乱。 ;-)

标签: wcf json rest


【解决方案1】:

啊...我没有正确使用配置标签。您只能在服务端点而不是客户端端点上指定它。在客户端实现的端点上指定它是没有意义的。

“此元素启用端点行为,从而可以从 ASP.NET AJAX 网页使用服务。” http://msdn.microsoft.com/en-us/library/bb675191.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    相关资源
    最近更新 更多