C# WebRequest不包含';GetResponse';适用于Windows 10通用应用程序

C# WebRequest不包含';GetResponse';适用于Windows 10通用应用程序,c#,httpwebrequest,win-universal-app,definition,windows-10-universal,C#,Httpwebrequest,Win Universal App,Definition,Windows 10 Universal,我在GitHub上下载了一个控制台应用程序,效果很好。 但是我想把这个C#控制台应用程序转换成一个通用的Windows10应用程序 Visual Studio上的错误:Web请求不包含对…的定义。 代码如下: private AccessTokenInfo HttpPost(string accessUri, string requestDetails) { //Prepare OAuth request WebRequest webR

我在GitHub上下载了一个控制台应用程序,效果很好。 但是我想把这个C#控制台应用程序转换成一个通用的Windows10应用程序

Visual Studio上的错误
Web请求不包含对…的定义。

代码如下:

        private AccessTokenInfo HttpPost(string accessUri, string requestDetails)
    {

        //Prepare OAuth request 
        WebRequest webRequest = WebRequest.Create(accessUri);
        webRequest.ContentType = "application/x-www-form-urlencoded";
        webRequest.Method = "POST";
        byte[] bytes = Encoding.ASCII.GetBytes(requestDetails);

        webRequest.ContentLength = bytes.Length;
        using (Stream outputStream = webRequest.GetRequestStream())
        {
            outputStream.Write(bytes, 0, bytes.Length);
        }
        using (WebResponse webResponse = webRequest.GetResponse())
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(AccessTokenInfo));
            //Get deserialized object from JSON stream
            AccessTokenInfo token = (AccessTokenInfo)serializer.ReadObject(webResponse.GetResponseStream());
            return token;
        }
    }
基本上,我在这3个函数上得到一个错误:

webRequest.ContentLength
webRequest.GetRequestStream()
webRequest.GetResponse()
这是错误的图像:

传统评论: 我在GitHub上读到了一些类似的问题,似乎我需要创建一个异步结果,如

这是一些类似问题的答案(我不知道如何将此应用于我的问题):

  /**  In case it is a Windows Store App (and not WPF) there is no synchronous GetResponse method in class WebResponse.

 You have to use the asynchronous GetResponseAsync instead, e.g. like this: **/

using (var response = (HttpWebResponse)(await request.GetResponseAsync()))
{
    // ...
}

提前谢谢

在您链接的答案中,有一条注释与实际答案一致:

如果是Windows应用商店应用程序(而不是WPF),则没有 WebResponse类中的同步GetResponse方法

您必须在UWP应用程序中使用异步方法,因为它们不再具有同步CAL来提高用户界面性能(不再挂起UI,因为它在同一线程上执行web请求)

您的代码应该是

HttpWebResponse response = await webrequest.GetResponseAsync();
以下是有关async/await及其使用方法的更多信息:

可能重复的