J'essaie d'utiliser RestSharp pour consommer un service Web. Jusqu'à présent, tout s'est très bien passé (bravo à John Sheehan et à tous les contributeurs!) Mais je suis tombé sur un hic. Disons que je veux insérer du XML dans le corps de ma RestRequest sous sa forme déjà sérialisée (c'est-à-dire sous forme de chaîne). Y a-t-il un moyen facile de faire ceci? Il semble que la fonction .AddBody () effectue la sérialisation dans les coulisses, donc ma chaîne est en train d'être transformée en <String />
.
Toute aide est grandement appréciée!
EDIT: Un échantillon 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;
}
Réponses:
Voici comment ajouter une chaîne XML ordinaire au corps de la requête:
req.AddParameter("text/xml", body, ParameterType.RequestBody)
;la source
req.AddParameter("application/json", body, ParameterType.RequestBody);
Merci à Jean Hominal pour le tuyau iciPour ajouter à la réponse de @ dmitreyg et par le commentaire de @ jrahhali à sa réponse, dans la version actuelle, au moment où elle est publiée
v105.2.3
, la syntaxe est la suivante:la source