不能从'System.IO.Stream'& # 39;字符串# 39;
本文关键字:字符串 Stream System 不能 IO | 更新日期: 2023-09-27 18:07:54
我被这个问题难住了,可能需要一些帮助。在过去的几个小时里,我做了网络搜索,并阅读了文档,但没有运气。
我得到一个错误,从"JObject o = JObject. parse (response);"行的"response"重载条目中读取如下内容。
参数1:不能从System.IO转换。流'到'字符串'
static void MyFunction(out string Value1, out string Value2)
{
HttpClient client = new HttpClient();
var response = client.GetStreamAsync("My URI").Result;
JObject o = JObject.Parse(response);
Value1 = (string)o.SelectToken("PressureReading");
Value2 = (string)o.SelectToken("PressureTrend");
}
我在一个控制台应用程序项目中使用webclient工作。然而,由于这是一个UWP项目,我无法使用web客户端(我需要使用HttpClient)。另外,我从我的REST API解析的JSON字符串如下:
{"ID":8,"Site":"EstevanPointCanada","PressureReading":"30.05 ","PressureTrend":"0 "}
我需要做什么改变才能使上面的函数编译?
事先感谢您提供的帮助。
JObject.Parse
取string
,不取Stream
。您试图通过response
,这是Stream
。
要修复它,只需使用HttpClient.GetStringAsync
代替,例如
using (HttpClient client = new HttpClient())
{
var response = client.GetStringAsync("My URI").Result;
JObject o = JObject.Parse(response);
Value1 = (string)o.SelectToken("PressureReading");
Value2 = (string)o.SelectToken("PressureTrend");
}
注意,如果你发现自己被这样的错误弄得很困惑,让所有类型都显式是值得的——如果你为response
而不是var
使用显式类型,很明显,要么你期望是string
,但它不是,或者你期望它是Stream
,但JObject.Parse
不接受流…