当我在 Hammock 和 WP7 中使用 WCF Web API 时遇到一个有趣的问题。如您所知,WCF Web API 允许您根据您在 Accept 标头中指定的内容更改响应类型。例如,如果您发送 Accept:application/json,则响应为 JSON,如果您指定 application/xml,您将获得 XML 等等。
所以我创建了我的 Web API,它在 Web 浏览器上运行得非常好。正如预期的那样,我得到了我想要的类型。但是,当我从 WP7 使用它时,Accept 标头是什么并不重要,看起来 WP7 将其替换为/并且我只返回 XML。
我知道问题不是 Hammock,因为我尝试使用 Facebook Graph API。如果我将 Accept 更改为:application/hello,则会收到错误的请求错误。但是,当我在 C# 代码中使用 WP7 执行此操作时,我绝对没有错误,并且无论我发送什么,返回类型都是 XML。
为了避免这个问题,我在我的 WCF Web API 中创建了一个 JSON.Net Serializer。一切都很好,直到我开始在我的方法中使用 HttpResponseMessage 作为返回类型。现在,即使我有一个 JSON 序列化程序,我也会为使用 HttpResponseMessage 的所有方法获取 XML。
如你所见,我现在在拉拉地。
任何人都可以提供任何反馈吗?
非常感谢任何帮助。