Я делаю запрос на http://api.weatherapi.com/v1/current.json
, используя RetSharp
вот так:
var request = new RestSharp.Serializers.Newtonsoft.Json.RestRequest();
request.AddHeader("content-type", "application/json");
var client = new RestClient(URL + urlParameters);
client.Proxy = WebRequest.DefaultWebProxy; // I was led to believe this will fix my problem of my requests taking minutes on end to execute, but it didn't that much.
var queryResult = client.Execute(request).Content;
var response = JsonConvert.DeserializeObject<CurrentJsonResponse>(queryResult);
Это работает нормально, но мне не нравится, что мне нужно сделать отдельный вызов JsonConvert
, и, предположительно, RestSharp должен иметь встроенную поддержку такого рода.
Я пробовал следующее:
var response = client.Execute<CurrentJsonResponse>(request).Data; // returns a CurrentJsonResponse object with null properties.
request.JsonSerializer = new NewtonsoftJsonSerializer(); // I put it at the very start, but doesn't help.
var jsonDeserializer = new JsonDeserializer();
client.AddHandler("application/json", jsonDeserializer); // Second verse, same as the first.
var response = client.Execute<object>(request).Data; // Correctly creates an annonymous object that has the right properties/information but it's not exactly what I'm going for. As I wanted it strongly-typed.
Ничего не сработало. Как я могу десериализовать ответ json, который я получаю с помощью RestSharp явно, без отдельного вызова Newtonsoft. Я загрузил RestSharp.Serializers.Newtonsoft.Json
nuget.