Saya mencoba menggunakan RestSharp untuk menggunakan layanan web. Sejauh ini semuanya berjalan dengan sangat baik (tepuk tangan untuk John Sheehan dan semua kontributor!) Tetapi saya mengalami masalah. Katakanlah saya ingin memasukkan XML ke dalam tubuh RestRequest saya dalam bentuk yang sudah berseri (yaitu, sebagai string). Adakah cara mudah untuk melakukan ini? Tampaknya fungsi .AddBody () melakukan serialisasi di belakang layar, jadi string saya diubah menjadi <String />
.
Bantuan apa pun sangat dihargai!
EDIT: Contoh kode saya saat ini diminta. Lihat di bawah --
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;
}
Jawaban:
Berikut adalah cara menambahkan string xml biasa ke tubuh permintaan:
req.AddParameter("text/xml", body, ParameterType.RequestBody)
;sumber
req.AddParameter("application/json", body, ParameterType.RequestBody);
Terima kasih kepada Jean Hominal atas tipnya di siniUntuk Menambah jawaban @ dmitreyg dan komentar per @ jrahhali ke jawabannya, di versi saat ini, pada saat ini diposting
v105.2.3
, sintaksnya adalah sebagai berikut:sumber