Ich versuche, ein sehr einfaches Beispiel für die Verwendung der Execute-Methode von RestSharp zum Abfragen eines Restendpunkts und Serialisierung zu einem POCO zu verwenden. Alles, was ich versuche, führt jedoch zu einem response.Data-Objekt, das alle Eigenschaften mit einem NULL-Wert hat.RestSharp-Client gibt alle Eigenschaften als Null zurück, wenn JSON-Antwort deserialisiert wird
Hier ist die JSON-Antwort:
{
"Result":
{
"Location":
{
"BusinessUnit": "BTA",
"BusinessUnitName": "CASINO",
"LocationId": "4070",
"LocationCode": "ZBTA",
"LocationName": "Name of Casino"
}
}
}
Hier ist mein Testcode
[TestMethod]
public void TestLocationsGetById()
{
//given
var request = new RestRequest();
request.Resource = serviceEndpoint + "/{singleItemTestId}";
request.Method = Method.GET;
request.AddHeader("accept", Configuration.JSONContentType);
request.RootElement = "Location";
request.AddParameter("singleItemTestId", singleItemTestId, ParameterType.UrlSegment);
request.RequestFormat = DataFormat.Json;
//when
Location location = api.Execute<Location>(request);
//then
Assert.IsNotNull(location.LocationId); //fails - all properties are returned null
}
Und hier meine API-Code
public T Execute<T>(RestRequest request) where T : new()
{
var client = new RestClient();
client.BaseUrl = Configuration.ESBRestBaseURL;
//request.OnBeforeDeserialization = resp => { resp.ContentLength = 761; };
var response = client.Execute<T>(request);
return response.Data;
}
Und schließlich, hier ist meine POCO
public class Location
{
public string BusinessUnit { get; set; }
public string BusinessUnitName { get; set; }
public string LocationId { get; set; }
public string LocationCode { get; set; }
public string LocationName { get; set; }
}
Darüber hinaus sind die Eigenschaften ErrorException und ErrorResponse für die Antwort NULL.
Dies scheint wie ein sehr einfacher Fall, aber ich bin den ganzen Tag in Kreisen herumgelaufen! Vielen Dank.
Was passiert, wenn Sie 'request.AddUrlSegement (" singleItemTestId ", singleItemTestId)' anstelle des Aufrufs aufrufen, den Sie 'AddParameter' hinzufügen müssen? –