다음 과 같이 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.
작동하지 않았습니다. Newtonsoft에 대한 별도의 호출없이 RestSharp로 명시 적으로받는 json 응답을 어떻게 역 직렬화 할 수 있습니까? RestSharp.Serializers.Newtonsoft.Json
너겟 을 다운로드했습니다 .
두 번째 시도에서 변경 시도
var jsonDeserializer = new JsonDeserializer();
client.AddHandler("application/json", jsonDeserializer);
에
client.AddHandler("application/json", () => new RestSharp.Serializers.Newtonsoft.Json.NewtonsoftJsonSerializer());
그리고 전화 :
var response = client.Execute<CurrentJsonResponse>(request).Data;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다