HttpClient 호출 사용을 단순화하기 위해 만든 메서드가 있습니다. 그것은 API로부터 응답을 얻기 위해 HttpReponse.Content.ReadAsAsync(). Result 메서드를 사용한다.간단한 일반 개체 캐스팅
이 모든 것이 정상적으로 작동합니다. 쿼리는 사용자 정의 클래스 내가 쓴 그 경우는 괜찮 T.의 빈 유형을 반환해야 실패하지만, 경우
public static T ExecuteAPIGetRequest<T>(string url, Dictionary<string, string> parameters)
{
HttpClient client = new HttpClient();
//basic authentication
var t = new object();
string baseURL = "myurl";
//Execute request
HttpResponseMessage response = client.GetAsync(baseURL).Result;
if (response.IsSuccessStatusCode)
{
return response.Content.ReadAsAsync<T>().Result;
}
else
{
return (T)t;
}
}
내 질문에, 그것은 작동하지 않습니다됩니다 : 내 방법은 다음과 같이 보입니다 string 또는 string []과 같은 객체. 어떤 아이디어?
건배
NCBL
참고 : 'T'가 참조 유형 인 경우 'null'이되며, 가장 가능성이 큽니다. 기본 * 인스턴스 *를 반환하려면'T'에'new' 제약 조건을 추가하고 대신에'return new T();를 써야합니다. –
감사합니다 일리아 이바노프, 치료를 한! 완벽 해. – ncbl
@DanielHilgarth 아마도 뭔가를 놓쳤 겠지만,'default (T)'는 프리미티브와 커스텀 구조체에 대한 올바른 값을 반환합니다. 방금'double'과 custom 구조체를 테스트했습니다.당신은 일반적인 제약 조건을 지정할 필요가 없습니다. 구조체는 항상 매개 변수없는 생성자를가집니다. –