1

Windows Phone 7.1 プロジェクトで RestSharp を使用しています。

私の問題は、返された応答データを XML 形式で取得できないことです。応答は常に JSON ですが、サーバーは JSON と XML の両方をサポートしています。

例: URL: http://timtim.vn:8080/fktw/services/timhot/photo/15732

ご覧のとおり、サーバーは XML を返すことができます。しかし、私のプロジェクトでは、RestSharp の応答は JSON 形式です。RequestFormat を設定request.RequestFormat = DataFormat.Xml;しましたが、機能しません!

JsonDeserializer を使用すると、応答を完全に逆シリアル化できますが、この問題の理由を知りたいです。

ありがとうございました!

4

2 に答える 2

2

その理由は、RestSharpにはデフォルトで6つのContentTypeがあります(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 宣言の後の行にドロップする簡単なトリック:

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