【问题标题】:Calling WCF 4.0 Rest Service with json使用 json 调用 WCF 4.0 Rest Service
【发布时间】:2010-12-17 00:18:06
【问题描述】:

我使用 .net 4 创建了一个新的 wcf 休息服务。 我已经基于示例创建了一个新服务,并在 global.asax 文件中引用了它,因此我可以正常浏览它。

我的问题是我在 xml 而不是 json 中返回结果。这是我的服务代码

  [ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
// NOTE: If the service is renamed, remember to update the global.asax.cs file
public class CheckIfValid
{
    [OperationContract]
    [WebGet(UriTemplate = "/{id}/details.json",
            ResponseFormat = WebMessageFormat.Json)]
    public SampleItem Get(string id)
    {
        // TODO: Return the instance of SampleItem with the given id
        //throw new NotImplementedException();
        if(id=="123")
        return new SampleItem { Id = 1, StringValue = "Got it" };
        else
            return new SampleItem { Id = 2, StringValue = "Not valid fool..." };
    }
}

非常基本,但我只是想了解一下。返回的结果是这样的

<SampleItem xmlns="http://schemas.datacontract.org/2004/07/WcfRestService1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Id>1</Id><StringValue>Got it</StringValue></SampleItem>

我已尝试浏览到服务中的帮助部分,但 json 示例没有执行任何操作。

谁能建议我应该做些什么不同的事情?

【问题讨论】:

    标签: wcf rest


    【解决方案1】:

    您是否尝试过通过 Fiddler 而不是使用网络浏览器发出请求?许多浏览器不会呈现返回的任何 JSON。

    【讨论】:

    • 关于在浏览器中显示json,见stackoverflow.com/questions/2483771/…
    • @Cheeso 很高兴知道你能做到这一点,但你仍然不会从我冰冷、死气沉沉的手中撬动小提琴手。 :-) 通过浏览器调试 REST 服务只是一个巨大的挫折练习。
    • 谢谢达雷尔。 Doh 觉得没有在 fiddler 中测试有点愚蠢
    • @Darrel - 我几乎每天都使用 fiddler,所以我同意你的看法。这是不可或缺的。除了跟踪 HTTP 消息之外,还有许多很酷的功能。您可以拦截流量、修改脚本、设置断点。这是一个很棒的工具。即便如此,有时候在浏览器中看到 json 还是很不错的。
    • 这块jqeury有什么理由返回任何东西吗?
    猜你喜欢
    • 2011-09-30
    • 2011-06-16
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多