C# httpclient 泛型封装返回值
时间: 2023-09-27 22:11:39 浏览: 50
可以使用C#的泛型来封装HttpClient的返回值,以下是一个示例代码:
```csharp
public async Task<T> GetAsync<T>(string url)
{
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(url);
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<T>(json);
}
throw new Exception($"Failed to get data from {url}. StatusCode: {response.StatusCode}");
}
}
```
在这个示例中,我们使用了async/await来异步获取数据,并且使用了HttpClient来发送GET请求。如果请求成功,我们将返回值反序列化为泛型T,否则会抛出异常。这样,我们就可以在调用时指定返回类型,例如:
```csharp
var result = await GetAsync<MyModel>("http://example.com/api/data");
```
其中,MyModel是我们期望的返回类型。这样,我们就可以很方便地封装HttpClient的返回值,并且能够根据需要进行类型转换。