1

我在我的 Windows Phone 7.1 项目中使用 RestSharp。

我的问题是我无法以 XML 格式返回响应数据,我的响应始终为 JSON,而我的服务器同时支持 JSON 和 XML。

示例:网址:http ://timtim.vn:8080/fktw/services/timhot/photo/15732

如您所见,服务器可以返回 XML。但在我的项目中,RestSharp 响应是 JSON 格式。我已经设置了 RequestFormatrequest.RequestFormat = DataFormat.Xml;但它不起作用!

使用JsonDeserializer,我仍然可以完美地反序列化响应,但我想知道这个问题的原因。

谢谢!

4

2 回答 2

2

原因是 RestSharp 默认有 6 个 ContentTypes(你可以在 RestClient 对象的 ContentTypes 属性中看到它们。第一个 ContentType 是“application/json”。所以对于 RestClient 来说,内容类型是它会请求的第一个,如http:/ /timtim.vn:8080/fktw/services/timhot/photo/15732支持 JSON 则响应内容类型为 JSON。

如果通过编码删除它:client.RemoveHandler("application/json");那么响应内容类型将是 XML,这实际上是下一个 ContentType 首选项。

但是我不知道如何明确客户的 ContentType 偏好。

问候

于 2012-04-19T07:49:19.160 回答
0

我在客户端声明后加入了一个快速技巧:

client.ClearHandlers();
client.AddHandler("application/xml", new XmlDeserializer());
client.AddHandler("text/xml", new XmlDeserializer());
于 2013-02-21T07:10:18.437 回答