【发布时间】:2012-02-24 04:14:14
【问题描述】:
这是我在处理 RESTful Web 服务几次后第一次遇到这种错误。我发现很难追查错误的原因,希望你能帮助我。
我有登录服务的这个属性
[WebGet(UriTemplate = "Login?username={username}&password={password}&ip={ip}", ResponseFormat = WebMessageFormat.Json)]
使用fiddler使用服务:
获取http://localhost:3445/Authenticate/Login?username=jsm&password=a&ip=1
提琴手回应:
[Fiddler] ReadResponse() failed: The server did not return a response for this request.
我不确定它是否是由Content-type: application/json 引起的,因为当我尝试将其更改为 xml 时:
[WebGet(UriTemplate = "Login?username={username}&password={password}&ip={ip}", ResponseFormat = WebMessageFormat.Xml)]
它给了我这个结果:
有点奇怪。我做错了什么?我必须返回 json 对象。谢谢!
【问题讨论】:
-
我想我必须更改用于测试 Rest 的工具。对于所有能够阅读此问题的人,您可以建议使用什么工具来测试 Rest?一个能够使用 POST、GET、PUT 等协议的工具。除了提琴手之外的工具..?谢谢
-
fiddler 对我来说已经相当不错了。您的上述问题在
ResponseFormat = WebMessageFormat.Json中并不少见。我喜欢在 Fiddler 中查看 RAW 选项卡。 -
您能否尝试从您的 WebGet 属性中删除 ResponseFormat 属性并检查它是否有效。默认值为 xml,但如果您将内容类型指定为 application/json,WCF Rest Api 会智能地以客户端理解的格式回复
-
@Rajesh 它会工作,但它会返回 xml 数据,而不是 Json 格式的数据。
-
你能发布你的方法框架吗?还要发布您用于上述服务的配置