"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
.
Ответы
Ответ 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