B. *_*non 1 xml rest wcf json web-services
我有一些几乎相同的WCF服务代码,除了一个方法应该返回一个xml结果,另一个方法是一个json结果:
[ServiceContract]
public interface IRestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "xml/{id}")]
string XMLData(string id);
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json/{id}")]
string JSONData(string id);
}
Run Code Online (Sandbox Code Playgroud)
xml工作正常(例如,当我在浏览器中输入" http:// localhost:4841/RestServiceImpl.svc/xml/2468 "时).
但是,当我输入" http:// localhost:4841/RestServiceImpl.svc/json/2468 "时,我得到一个" 文件下载 - 安全警告 "对话框,它允许我保存文件(在这种情况下名为"2468") ,在记事本中打开时包含以下内容:
{"JSONDataResult":"您请求了产品2468"}
这是"按设计"(将json结果保存到文件中),还是为什么它的行为与xml-o-rama不同?
由您的浏览器决定如何处理任何特定的Content-Type,听起来您的浏览器不知道如何处理JSON.
要检查这一点,请在使用Chrome Dev Console或Firebug(或您使用的任何浏览器中的任何等效内容)时,在加载该资源时查看网络请求.在标题中,您应该看到类似的内容
Content-type: application/json
Run Code Online (Sandbox Code Playgroud)
如果您这样做,问题是您的浏览器.如果你没有看到,你的服务器或服务代码是错误的(特别是如果它application/octet-stream是mime类型相当于"我不知道").
至于浏览器,我个人推荐Chrome +这个用于显示格式化JSON输出的优秀插件:https://github.com/callumlocke/json-formatter
| 归档时间: |
|
| 查看次数: |
2150 次 |
| 最近记录: |