【发布时间】:2017-09-27 15:41:46
【问题描述】:
我有一个假设获取天气数据的简单方法,当我调用它时会发生此错误:
System.Runtime.Serialization.SerializationException 未被用户代码处理 H结果=-2146233076 消息=反序列化 UWpWeather.RootObject 类型的对象时出错。遇到了意外的字符“
public async static Task <RootObject> GetWeather(double lat, double lng) {
var http = new HttpClient();
var response = await http.GetAsync("http://api.openweathermap.org/data/2.5/forecast/daily?q=leeds&type=accurate&mode=xml&units=metric&cnt=3&appid= MY AIP-KEY");
string result = await response.Content.ReadAsStringAsync();
var serializer = new DataContractJsonSerializer(typeof (RootObject));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
var data = (RootObject) serializer.ReadObject(ms);
return data;
}
【问题讨论】:
-
您正在使用 JSON 序列化程序并从 API 请求 XML。
-
结果好像是XML格式的。尝试为 JSON 格式添加内容类型标头,或使用 XML 序列化器
-
好的,如何使用 XML 序列化程序?抱歉,我是新手,谢谢!