Подтвердить что ты не робот

"System.Net.HttpWebRequest" не содержит определения для "GetRequestStream"

Я новичок как на С#, так и на телефоне Windows и пытаюсь создать небольшое приложение, которое выполняет запрос JSON. Я следую примеру в этом сообщении qaru.site/info/152675/...

Мой текущий код:

public string login()
{
    var httpWebRequest = (HttpWebRequest)WebRequest.Create(MY_URL);
    httpWebRequest.ContentType = "text/plain"; 
    httpWebRequest.Method      = "POST";

    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
    {
       string text = MY_JSON_STRING;
       streamWriter.Write(text);
    }
}

но по какой-то причине Visual Studio помещает GetRequestStream() с сообщением об ошибке:

ошибка CS1061: "System.Net.HttpWebRequest" не содержит определение для 'GetRequestStream' и метод расширения "GetRequestStream" принимает первый аргумент типа "System.Net.HttpWebRequest" можно найти (вам не хватает директива или ссылка на сборку?)

Любые мысли о том, почему это происходит? Я уже импортировал пакет System.Net.

4b9b3361

Ответ 1

HttpWebRequest не имеет GetRequestStream или GetRequestStreamAsync в WP8. Лучше всего создать задачу и подождать, например:

using (var stream = await Task.Factory.FromAsync<Stream>(request.BeginGetRequestStream, request.EndGetRequestStream, null))
{
    // ...
}

Изменить: как вы уже упоминали, что вы новичок в С#, вам нужно, чтобы ваш метод входа был асинхронным, чтобы использовать ключевое слово ожидания:

public async Task<string> LoginAsync()
{
    // ...
}

Абонентам входа в систему необходимо будет использовать ключевое слово ожидания при вызове:

string result = await foo.LoginAsync();

Вот хороший учебник по теме: http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx