2016-03-28 10 views
7

Ho quello che sembra dovrebbe essere una semplice domanda, ma non riesco a trovare una risposta ad esso ovunque. Dato il seguente codice:C# Leggi (non scrive!) Stringa da System.Net.Http.StringContent

using System.Net.Http; 
    ... 
    StringContent sc = New StringContent("Hello!"); 
    string myContent = ???; 

cosa ho bisogno di sostituire il ??? con, al fine di leggere il valore della stringa da sc, in modo che myContent = "Hello!"?

.ToString restituisce solo System.String, così come .ReadAsStringAsync. Come leggo ciò che ho scritto?

+2

raccomando utilizzando il MSDN https://msdn.microsoft.com/en-us/library/system .net.http.stringcontent% 28v = vs.118% 29.aspx – Jace

+0

Quando chiamo 'await sc.ReadAsStringAsync();' Ricevo la stringa "Ciao!". Se stai ricevendo 'System.String' stai facendo qualcosa di sbagliato. –

risposta

10

È possibile utilizzare ReadAsStringAsync() metodo, quindi ottenere il risultato usando await dichiarazione o Result proprietà:

StringContent sc = new StringContent("Hello!"); 

string myContent = await sc.ReadAsStringAsync(); 
//or 
string myContent = sc.ReadAsStringAsync().Result; 
+0

Devo aver provato questa mezza dozzina di modi diversi, e ogni volta, non ho potuto ottenere il contenuto reale. Non sono sicuro di cosa stavo facendo male - stavo cercando di usare ReadStringAsSync - ma ho appena provato di nuovo e sc.ReadAsStringAsync(). Risultato funziona davvero, quindi grazie! – IAmErickson

+0

Asincrono come in asincrono –