- Система.Сеть.HttpWebRequest "не содержит определения для "GetRequestStream"

Я новичок в C# и Windows phone и пытаюсь сделать небольшое приложение, которое выполняет запрос JSON. Я следую примеру в этом посте https://stackoverflow.com/a/4988809/702638

мой текущий код такой:

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: 'система.Сеть.HttpWebRequest ' не содержит определение для 'GetRequestStream' и нет метод расширения 'GetRequestStream' принимает первый аргумент типа - Система.Сеть.HttpWebRequest " можно найти (вам не хватает использования директива или ссылка на сборку?)

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

1 ответов


HttpWebRequest нет GetRequestStream или GetRequestStreamAsync в WP8. Ваш лучший выбор-создать задачу и ждать ее, например:

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

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

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

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

string result = await foo.LoginAsync();

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