2016-09-20 156 views
0

私はこの問題に困惑しています。私はウェブ検索をして、最後の数時間のドキュメントを読んで、運がなかった。引数1: 'System.IO.Stream'から 'String'に変換できません

「JObject o = JObject.Parse(response);」の「response」オーバーロードエントリから、次のようにエラーが表示されます。ライン。

引数1:

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"); 
} 

「文字列」に「System.IO.Stream」から変換することはできません私は、コンソールアプリケーションのプロジェクトにWebクライアントを使用して作業し、このコードを持っていました。しかし、これはUWPプロジェクトのため、webclientを使用できません(また、HttpClientを使用する必要があります)。また、次のように私は私のREST APIから解析していJSON文字列は次のとおりです。

私はコンパイルする上記関数のために確認する必要がありますどのような変更
{"ID":8,"Site":"EstevanPointCanada","PressureReading":"30.05  ","PressureTrend":"0   "} 

ご協力いただきありがとうございます。

+0

私はこれをテストして、動作します...これを手伝ってくれてありがとう。 –

答えて

6

JObject.Parseは、Streamではなく、stringである。 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のための明示的な型を使用したい場合、あなたのどちらかということ、それは非常に明白であったであろう文字列を取得D」それはstringするを期待し、それができなかった、またはあなたはそれがStreamことが期待だろうということが、JObject.Parseは、ストリームを受け入れなかったこと...

+0

ありがとうございました。私は仕事から家に帰るときにそれを検証します –

0

変更されたコード、からHttp Response Stream

static void MyFunction(out string Value1, out string Value2) 
{ 
using (HttpClient client = new HttpClient()) 
    { 
     var response = client.GetStreamAsync("My URI").Result; 

     using (StreamReader sr = new StreamReader(response)) 
     {   
      JObject o = JObject.Parse(sr.ReadToEndAsync().Result); 
      Value1 = (string)o.SelectToken("PressureReading"); 
      Value2 = (string)o.SelectToken("PressureTrend"); 
     } 
    } 
} 
+0

それを見ていただきありがとうございます。私は仕事から家に帰ると、それから検証します –

関連する問題