97 votes

Comment ajouter du texte à la requête body dans RestSharp

Je suis en train d'utiliser RestSharp de consommer un service web. Jusqu'à présent, tout est allé très bien (bravo à John Sheehan et tous les contributeurs!) mais j'ai heurter à un écueil. Dire que je veux insérer des données XML dans le corps de mon RestRequest dans sa déjà une forme sérialisée (c'est à dire, comme une chaîne de caractères). Est-il un moyen facile de faire cela? Il semble que l' .AddBody() la fonction effectue la sérialisation derrières les coulisses, ma chaîne est transformé en "".

Toute aide est grandement appréciée!

EDIT: UN exemple de mon code actuel a été demandé. Voir ci-dessous --

private T ExecuteRequest<T>(string resource,
                            RestSharp.Method httpMethod,
                            IEnumerable<Parameter> parameters = null,
                            string body = null) where T : new()
{
    RestClient client = new RestClient(this.BaseURL);
    RestRequest req = new RestRequest(resource, httpMethod);

    // Add all parameters (and body, if applicable) to the request
    req.AddParameter("api_key", this.APIKey);
    if (parameters != null)
    {
        foreach (Parameter p in parameters) req.AddParameter(p);
    }

    if (!string.IsNullOrEmpty(body)) req.AddBody(body); // <-- ISSUE HERE

    RestResponse<T> resp = client.Execute<T>(req);
    return resp.Data;
}

204voto

dmitreyg Points 806

Voici comment ajouter une chaîne xml au corps de la requête:

req.AddParameter("text/xml", body, ParameterType.RequestBody) ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X