RestSharp Utilisation

Récemment, j'ai été en utilisant RestSharp à consommer ma Reposant Ressource. et attendu l'échange de données JSon entre le serveur et le client. Ci-dessous mon code C#.

var client = new RestSharp.RestClient();
var request = new RestRequest(sUrl,Method.POST);
request.RequestFormat = DataFormat.Json;
request.Timeout =  TIME_OUT_MILLISECONTS ;
request.AddHeader("Content-Type", "application/json");
request.AddBody(new { appID = sAppId, loginName = sUserName, password=sPassword });
var response = client.Execute(request);
string s=response.Content;//It is always XML format.

Le résultat n'est pas ce que j'ai prévu pour le format Json(format de données), même si j'avais mis le RequestFormat Json et ajouter un en-tête Http Content-Type. J'ai donc décidé d'utiliser l' .Net Réflecteur à découvert de Ce qui s'est passé dans le RestClient.Méthode Execute. Voici le code de la méthode.

public RestClient()
    {
        ...
        this.AddHandler("application/json", new JsonDeserializer());
        this.AddHandler("application/xml", new XmlDeserializer());
        this.AddHandler("text/json", new JsonDeserializer());
        this.AddHandler("text/x-json", new JsonDeserializer());
        this.AddHandler("text/javascript", new JsonDeserializer());
        this.AddHandler("text/xml", new XmlDeserializer());
        this.AddHandler("*", new XmlDeserializer());
        ...
    }

J'ai quelques questions à ce sujet:

  1. Comme le RestClient ajoute de nombreux types de Content-Type dans la HttpWebRequest. Est-ce une bonne façon de construire une Demande? Et je pense que c'est Peut-être la raison pour laquelle la Réponse.Toujours contenu XML.

  2. Je ne sais pas pourquoi le RestClient besoin pour construire un HttpWebRequest comme ça. Aucun sens de le faire?

  3. Si nous avons spécifié les deux JSon et XMl format de message dans une Requête Http, celui qui fonctionne enfin? Est-il permis?

Grâce. Avoir une bonne journée.

InformationsquelleAutor Joe.wang | 2012-08-23