Saya mencoba membuat panggilan REST yang sangat mendasar ke MVC 3 API saya dan parameter yang saya berikan tidak mengikat pada metode tindakan.
Klien
var request = new RestRequest(Method.POST);
request.Resource = "Api/Score";
request.RequestFormat = DataFormat.Json;
request.AddBody(request.JsonSerializer.Serialize(new { A = "foo", B = "bar" }));
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Server
public class ScoreInputModel
{
public string A { get; set; }
public string B { get; set; }
}
// Api/Score
public JsonResult Score(ScoreInputModel input)
{
// input.A and input.B are empty when called with RestSharp
}
Apakah saya melewatkan sesuatu di sini?
AddObject(new { A = "foo", B = "bar" })
juga yang mengambil properti objek dan mengubahnya menjadi parameterrequest.AddParameter("text/json", body, ParameterType.RequestBody);
request.AddBody(new ...
dalam contoh pertama Anda.Dalam versi RestSharp (105.2.3.0) saat ini, Anda bisa menambahkan objek JSON ke badan permintaan dengan:
Metode ini menetapkan tipe konten ke aplikasi / json dan membuat serialisasi objek ke string JSON.
sumber
var client = new RestSharp.RestClient("http://your.api.com"); var request = new RestSharp.RestRequest("do-something", Method.POST); var body = new {details = new {extras = "stuff"}}; request.AddJsonBody(body); var response = client.Execute(request);
Inilah yang bekerja untuk saya, untuk kasus saya itu adalah posting untuk permintaan login:
tubuh:
sumber
Semoga ini bisa membantu seseorang. Itu bekerja untuk saya -
sumber
request.AddHeader("Accept", "application/json");
itu jawaban yang benar.Jika Anda memiliki
List
objek, Anda dapat membuat cerita bersambung ke JSON sebagai berikut:Dan kemudian gunakan
addParameter
:Dan Anda akan perlu mengatur format permintaan ke
JSON
:sumber