- RestSharp 105.2.3
- WebAPI 2
So habe ich eine einfache WebAPI Controller als solche:RestSharp mein WebAPI Parameter Aufruf leer
public class EnettController : ApiController
{
private readonly DebitService _EnettService;
public EnettController()
{
_EnettService = new DebitService();
}
[HttpPost]
public ProcessDirectDebitResponse ProcessDirectDebit([FromBody] ProcessDirectDebitRequest aRequest)
{
}
}
und von meinem Test-Harnisch I rufen Sie es mit dem folgenden RestSharp-Code auf:
RestClient client = new RestClient($"http://{txtHost.Text}:{txtPort.Text}");
ProcessDirectDebitRequest dataForRequest = new ProcessDirectDebitRequest
{
AgentId = "James Bond",
DepartureDate = DateTime.Now,
Version = "123"
};
RestRequest request = new RestRequest("api/Enett", Method.POST)
{
RequestFormat = DataFormat.Json
};
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.AddBody(dataForRequest);
IRestResponse<ProcessDirectDebitResponse> response = client.Execute<ProcessDirectDebitResponse>(request);
if (response.StatusCode != HttpStatusCode.OK)
{
MessageBox.Show($"Did not yet a 200 response. Got instead {response.StatusCode}");
}
Mein WebAPI-Endpunkt ist kein Problem, aber aRequest ist immer NULL. So vermisse ich hier etwas Offensichtliches, ich kann einfach nicht sehen, was es ist. Warum ist eine Anfrage immer NULL?
scheint auf den ersten Blick in Ordnung zu sein. Kann die Anfrage-Payload mit Fiddler oder ähnlichen Tools überprüft werden? Möglicherweise können Sie auch versuchen, 'request.AddJsonBody (dataForRequest);' – Developer
AddJsonBody() macht keinen Unterschied. Ich versuche immer noch, Fiddler dazu zu bringen, die Anfrage zu sehen. – TheEdge
Das stimmt, sollte keinen Unterschied machen; möchte nur sicherstellen, dass beim Festlegen von Content-Type kein Tippfehler aufgetreten ist. Sollte einige Informationen erhalten, wenn Sie in die Nutzdaten und Header der Anfrage schauen. – Developer