Ich versuche, RestSharp zu verwenden, um einen Webdienst zu nutzen. Bisher ist alles sehr gut gelaufen (Prost an John Sheehan und alle Mitwirkenden!), Aber ich bin auf einen Haken gestoßen. Angenommen, ich möchte XML in seiner bereits serialisierten Form (dh als Zeichenfolge) in den Hauptteil meiner RestRequest einfügen. Gibt es eine einfache Möglichkeit, dies zu tun? Es scheint, dass die Funktion .AddBody () hinter den Kulissen eine Serialisierung durchführt, sodass meine Zeichenfolge in verwandelt wird <String />
.
Jede Hilfe wird sehr geschätzt!
BEARBEITEN: Ein Beispiel meines aktuellen Codes wurde angefordert. Siehe unten --
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;
}
Antworten:
So fügen Sie dem Anforderungshauptteil eine einfache XML-Zeichenfolge hinzu:
req.AddParameter("text/xml", body, ParameterType.RequestBody)
;;quelle
req.AddParameter("application/json", body, ParameterType.RequestBody);
Danke an Jean Hominal für den Tipp hierUm die Antwort von @ dmitreyg und den Kommentar von @ jrahhali zu seiner Antwort hinzuzufügen, lautet
v105.2.3
die Syntax in der aktuellen Version zum Zeitpunkt der Veröffentlichung wie folgt:quelle