RestSharp kullanarak konsola erişmeye çalıştığım bir Web API hizmetim var. Benim RestSharp kodu şöyle:RestSharp ile Web API çağrıları - uygulama/json'u gövdeye gönderir eylemde null parametresine neden olur
RestClient client = new RestClient(baseUrlString);
RestRequest request = new RestRequest("controllername/actionname");
request.RequestFormat = DataFormat.Json;
ProcessQuestion model = new ProcessQuestion()
{
Id = "123456",
InstanceId = "123",
UniqueId = "bfb16a18-d0d6-46ab-a5b3-2f0ebbfe8626",
PostedAnswer = new Dictionary<string, string>() { { "question_7907_1", "selected" }, { "question_7907_2", "selected" } }
};
request.AddBody(model);
var response = client.Execute(request)
My Web API eylem yukarıdaki model olarak aynı parametrelere sahip bir model alır. Çağrı yürütüldüğünde, bağlama başarısız olur ve parametre sıfırdır.
{application/json={"Id":"123456","InstanceId":"123","UniqueId":"bfb16a18-d0d6-46ab-a5b3-2f0ebbfe8626","PostedAnswer":{"question_7907_1":"selected","question_7907_2":"selected"}}}
I vücudun düzgün modeli bağlanan Fiddler'ı kullanılarak sonrası ise aşağıda gösterildiği gibi bu vücut değerine RestRequest.AddBody yöntemi prepending uygulama/json nedeniyle şüpheli. fiddler vücut değer application/json anahtarını prepending dışında aynı olduğunu
{'Id':'123456','InstanceId':'123','Uniqueid':'bfb16a18-d0d6-46ab-a5b3-2f0ebbfe8626','PostedAnswer':{'question_7907_1':'selected','question_7907_2':'selected'}}
Not: Aşağıda ben Fiddler sağlanan vücut değeridir.
Ayrıca dikkat edilmesi gerekenler: Her şeye benzeyen şeyi denedim ... Parametreleri eylemde ayırdım, FromBody ve FromUri özniteliklerini kullandım, özel DictionaryModelBinder'in denemesini denedim, özel ValueBinders denedim; RestSharp kullanarak m (bir RequestBody parametresiyle AddParameter, AddObject, farklı URL stilleri, vb.).
Bunu başka biriyle karşılaştı mı, eğer öyleyse, çözdünüz mü? Bu hizmet için Web API'yı seçtim ve modelin bağlanması MVC'de olduğu gibi çalışırdı, ancak durumun böyle olmadığını görüyorum.
sayesinde
DÜZENLEME (çözüldü): RestSharp otomatik AddBody yönteminde geçirilen nesnelerin JsonSerializer kullanır. Ben basit bir şey eksik olduğunu düşündüm, ve gerçekten de ... Ben RestRequest somutlaşma Method.Post parametresi ekleme sorunu çözdü.
RestSharp otomatik AddBody yönteminde geçirilen nesnelerin JsonSerializer kullanır. Ben basit bir şey eksik olduğunu düşündüm, ve gerçekten de ... Ben RestRequest somutlaşma Method.Post parametresi ekleme sorunu çözdü. Teşekkürler. –