Ich habe eine C# -REST-Web-API und ich habe etwas Code wie folgt, die eine Anfrage an einen Endpunkt. Einige der Daten, die ich weitergeben möchte, sind ein Objekt meines eigenen Typs, und da es ein komplexes Objekt ist, möchte ich es mit POST weitergeben.Verwenden Sie RestSharp Post-Objekt als JSON und lesen Sie es von der anderen Seite des Aufrufs
RestClient client = new RestClient(Constants.Endpoints.serviceEndPoint)
{
Timeout = 1000
};
string requestResource = Constants.Endpoints.apiEndPoint;
RestRequest request = new RestRequest(requestResource, Method.POST);
request.AddParameter("Authorization", $"Bearer {accessToken}", ParameterType.HttpHeader);
request.AddHeader("Accept", "application/json");
request.AddParameter("id", id, ParameterType.UrlSegment);
request.AddParameter("text/json", objectIWantToSerialize, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Auf der anderen Seite, ich versuche, das Objekt selbst mit einigen Code wie diese
var provider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var content in provider.Contents)
{
// what should I do here to read the content as a JSON
// and then transform it as the object it used to be before the call?
}
Ich habe versucht, zu lesen, zu tun erwarten content.ReadAsJsonAsync < MyType>(); aber auch versucht warten content.ReadAsStringAsync(); und keiner von diesen funktioniert. Mache ich etwas falsch zu der Zeit, die ich in dem Kunden ausführe? Oder mache ich etwas auf der anderen Seite, während ich den Inhalt lese?
Haben Sie versucht, einen Debug-Proxy wie [Fiddler] (https://www.telerik.com/fiddler) zu verwenden, um zu sehen, was tatsächlich an den Server gesendet wird? –
Ich habe tatsächlich Fiddler verwendet und mir ist aufgefallen, dass der gesendete Wert überhaupt nicht die JSON-Form des Objekts ist. Bedeutet das, dass der request.AddParameter falsch ist? – user3587624