I am calling API with RESTSharp
var client = new RestClient("http://demoservice.com");
var request = new RestRequest("callapi", "put");
request.RequestFormat = DataFormat.Json;
string jsonaction = "{\"tokenid\":\"x123x45\",\"userid\":\"2456\",\"ip\":\"192.168.1.20\",\"transaction\":\"6\",\"actionCode\":\"78\",\"jtoken\":\"systemtoken\"}";
request.AddBody(new { action = "SAVE", data = "savedata", token = "systemtoken", jsonaction = jsonaction });
I am checking in debug data passing in request. and my expected output as follows
{"action":"SAVE","data":"savedata","token":"systemtoken","jsonaction":{"tokenid":"x123x45","userid":"2456","ip":"192.168.1.20","transaction":"6","actionCode":"78","jtoken":"systemtoken"}}
But getting
{"action":"SAVE","data":"savedata","token":"systemtoken","jsonaction":"{"tokenid":"x123x45","userid":"2456","ip":"192.168.1.20","transaction":"6","actionCode":"78","jtoken":"systemtoken"}"}
If anybody can guide how to post for JSON I have tried with Addbody and AddJsonBody but nothing works.
You can do this using the
request.AddParameter()
method:
request.Method = Method.POST;
request.AddHeader("Accept", "application/json");
request.Parameters.Clear();
request.AddParameter("application/json", data , ParameterType.RequestBody);
var response = client.Execute(request);
var content = response.Content; // raw content as string
Where data is of the format:
data :
{
"action":"dosomething" ,
"data":"somedata" ,
"token":"sometoken",
"jsonAction": {
"tokenId": "",
...
}
Hope it helps!