c# - 如何修复错误代码 CS1503?
问题描述
public async void GetWeatherInfo(CityName city)
{
var httpClient = new HttpClient();
var json = JsonConvert.SerializeObject(city);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var uri = new Uri(string.Format("http://api.openweathermap.org/data/2.5/weather?q={0}&appid=29d06aa8c8b3a8341ab876b124d7c&units=metric",json));
var result = await httpClient.GetAsync(uri);
if (result.IsSuccessStatusCode)
{
try
{
var weatherInfo = JsonConvert.DeserializeObject<WeatherInfo>(**result**);
}}}
我正在开发一个天气应用程序项目,我正在尝试从用户那里获取一个字符串城市名称。我将城市名称绑定到 url 并编写了 GetRequest,但在代码末尾出现“结果”错误。它应该反序列化响应,以便我可以更改响应并使用它。错误消息是:无法从 'System.Net.Http.HttpResponseMessage' 转换为 'string'
解决方案
解释
该HttpClient.getAsync()
方法返回一个Task<HttpResponseMessage>
还包括状态代码和有关响应本身的更多信息。
返回任务{HttpResponseMessage}
表示异步操作的任务对象。`
您需要从结果中提取内容。
解决方案
尝试这个
public async void GetWeatherInfo(CityName city)
{
var httpClient = new HttpClient();
var json = JsonConvert.SerializeObject(city);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var uri = new Uri(string.Format("http://api.openweathermap.org/data/2.5/weather?q={0}&appid=29d06aa8c8b3a8341ab876b124d7c&units=metric",json));
var result = await httpClient.GetAsync(uri);
if (result.IsSuccessStatusCode)
{
try
{
string content = await result.Content.ReadAsStringAsync();
var weatherInfo = JsonConvert.DeserializeObject<WeatherInfo>(content);
}}}
推荐阅读
- html - css-grid-gallery-img-description-more 文本管理
- javascript - 遍历 NodeList
- json - Power bi:导入嵌套 json 查询
- c# - C# 添加自定义属性,在调用 setter 时设置属性值
- scala - 火花提交 ClassNotFoundException 或 NoClassDef
- rust - 如何根据 Diesel 的动态参数有条件地按列排序?
- javascript - 在javascript中过滤嵌套对象
- python - 使用 subprocess.run() 在 python 中执行 shell 命令
- r - 我在 excel 中有几个项目的数据 - 367x58。我尝试了多个功能,但是文件被导入为列表
- amazon-web-services - S3:控制台无法删除事件