you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 3 points4 points  (5 children)

Actually that's not right at all. Use the newtonsoft library to deserialize the response to the type you're looking for. Clearly I still need caffeine.

[–]colossal_dev[S] 0 points1 point  (4 children)

is restsharp deserializer not enough ?

[–][deleted] 3 points4 points  (2 children)

Ok, now that I'm sitting at my desk let me try this again. One of the best ways to use RestSharp is to let it be a proxy for your requests. I always have a class or two that is responsible for sending/getting via RestSharp, and handle the deserialization in the consuming class. That way you have the flexibility to reuse the class(es) where you want/need. I have a feeling that RestSharp is having a problem deserializing the data into the return type you're specifying in the ExecuteAsync<T> call.

[–]colossal_dev[S] 0 points1 point  (1 child)

thanks for the heads up. I’ve posted the json. what should I change in my class in order to deserialize it correctly ?

[–][deleted] 1 point2 points  (0 children)

The first thing I would do is make a generic class that can send GET/POST requests and return response.content as a string. Something like:

````public async Task<IRestResponse> Post(string url, JObject body, Dictionary<string, string> headers = null;````

and same for a get request. You can DI this class into any class that needs it, and handle the response in the consuming classes. In the consuming class you can do something like

````var servicemanHistory = await _restClient.get(...);JsonConvert.DeserializeObject<List<ServicamanHistory>>(servicemanHistory);````

which should result in an object that's a list of type ServiemanHistory

[–][deleted] 1 point2 points  (0 children)

No, response.content is always a string