2016-03-28 4 views
7

У меня есть то, что кажется, это должен быть простой вопрос, но я не могу найти ответ на него в любом месте. Учитывая следующий код:C# Читать (не писать!) Строку из System.Net.Http.StringContent

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

Что мне нужно заменить ??? с тем чтобы прочитать строковое значение из sc, так что myContent = "Hello!"?

.ToString просто возвращает System.String, как и .ReadAsStringAsync. Как я прочитал, что я написал?

+2

Я рекомендую используя MSDN https://msdn.microsoft.com/en-us/library/system .net.http.stringcontent% 28v = vs.118% 29.aspx – Jace

+0

Когда я вызываю 'await sc.ReadAsStringAsync();' Я получаю строку «Hello!». Если вы получаете 'System.String', вы делаете что-то неправильно. –

ответ

10

Вы можете использовать ReadAsStringAsync() метод, а затем получить результат, используя await оператор или Result свойства:

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

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

Я, должно быть, пробовал это полдюжины разных способов, и каждый раз я не мог получить фактический контент. Я не уверен, что я делаю неправильно - я пытался использовать ReadStringAsSync, но я просто попробовал еще раз и sc.ReadAsStringAsync(). Результат действительно работает, поэтому спасибо! – IAmErickson

+0

Async as в асинхронном режиме –