& # 39; System.Net.HttpWebRequest& # 39;不包含'GetRequestSt
本文关键字:GetRequestSt 包含 Net System HttpWebRequest | 更新日期: 2023-09-27 17:53:49
我是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: 'System.Net. net . 'HttpWebRequest'不包含定义'GetRequestStream',没有扩展方法'GetRequestStream'接受类型的第一个参数"System.Net。HttpWebRequest'可以找到(你错过了一个使用指令还是程序集引用?)
对为什么会发生这种情况有什么想法吗?我已经导入了System.Net
包
HttpWebRequest在WP8中没有GetRequestStream或GetRequestStreamAsync。最好的方法是创建一个Task并等待它,如下所示:
using (var stream = await Task.Factory.FromAsync<Stream>(request.BeginGetRequestStream, request.EndGetRequestStream, null))
{
// ...
}
编辑:正如你所提到的,你是c#的新手,你需要让你的登录方法是异步的,以使用await关键字:
public async Task<string> LoginAsync()
{
// ...
}
登录的调用者在调用
时需要使用await关键字:string result = await foo.LoginAsync();
这里有一个很好的入门主题:http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx