- Система.Сеть.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