2014-12-25 4 views
2

Я пробовал все возможные сценарии согласно документации RestSharp.org, но не повезло!Restsharp- Method.POST не работает

У меня есть ASP.Net Web API здесь является Почта ресурса

[Route("/api/saveperson/{name}/{fathername}")]  
public void Post([FromBody]CustomObject customObject, string name, string fatherName) 
{ 
     //customObject is null 
} 

запрос RestSharp:

public void SomeAPIRequest() 
{ 
var baseUrl = "someurl from config"; 
var client = new RestClient(baseUrl); 
var request = new RestRequest("/api/saverperson/{name}/{fathername}",Method.POST); 
request.RequestFormat = DataFormat.Json; 
request.AddBody(myObject); //This object is perfectly serialized in json 
request.AddParameter("name","Gaurav",ParameterType.UrlSegment); 
request.AddParameter("fathername","Lt. Sh. Ramkrishan",ParameterType.UrlSegment); 

var response= client.Execute(request); 

} 

С выше кодой параметром, публикуемым в теле всегда нуль.

Когда я сделал следующий вызов, параметр сообщения в орган оказывает значение, но другие являются недействительными

public void SomeAPIRequest() 
{ 
var baseUrl = "someurl from config"; 
var client = new RestClient(baseUrl); 
var request = new RestRequest("/api/saverperson/{name}/{fathername}",Method.POST); 
request.RequestFormat = DataFormat.Json; 
request.AddBody(myObject); //This object is perfectly serialized in json 
request.AddUrlSegment("name","Gaurav"); 
request.AddUrlSegment("fathername","Lt. Sh. Ramkrishan"); 

var response= client.Execute(request); 

} 

Любая помощь будет в основном приветствуется!

+0

Он также размещен здесь: https://github.com/restsharp/RestSharp/issues/622 –

ответ

6

Получить его решить сам, обмен, чтобы другие могли получить пользу:

Просто нужно сделать запрос, как:

request.AddParameter("Application/Json", myObject, ParameterType.RequestBody); 

Таким образом, полный фрагмент выглядит следующим образом:

public void SomeAPIRequest() 
{ 
var baseUrl = "someurl from config"; 
var client = new RestClient(baseUrl); 
var request = new RestRequest("/api/saverperson/{name}/{fathername}",Method.POST); 
request.RequestFormat = DataFormat.Json; 
request.AddParameter("Application/Json", myObject, ParameterType.RequestBody); 
request.AddUrlSegment("name","Gaurav"); 
request.AddUrlSegment("fathername","Lt. Sh. Ramkrishan"); 

var response= client.Execute(request); 

} 

После это, все, если работает нормально, как и ожидалось.

Смежные вопросы