C# &引用;程序不包含静态';主要';“适用于入口点的方法”;添加异步时

C# &引用;程序不包含静态';主要';“适用于入口点的方法”;添加异步时,c#,asynchronous,httpwebrequest,httpwebresponse,system.net,C#,Asynchronous,Httpwebrequest,Httpwebresponse,System.net,因此,我一直在用C#处理Web响应和请求,当我试图运行该程序时遇到了一个问题。我有一行代码: var response = await httpClient.SendAsync(request); 方法生成过程中需要异步 private static void Main(string[] args) 进入 看起来没有错误,但在构建时,我收到了错误消息: 程序不包含适合入口点的静态“Main”方法 这是我的密码 private static async Task Main(string[] a

因此,我一直在用C#处理Web响应和请求,当我试图运行该程序时遇到了一个问题。我有一行代码:

var response = await httpClient.SendAsync(request);
方法生成过程中需要异步

private static void Main(string[] args)
进入

看起来没有错误,但在构建时,我收到了错误消息:

程序不包含适合入口点的静态“Main”方法

这是我的密码

private static async Task Main(string[] args)
        {

            try
            {
                /*HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://billing.roblox.com/v1/gamecard/redeem");
                            request.Method = "POST";
                            request.ContentType = "application/json";
                            request.Accept = "application/json";
                            JsonExtensionDataAttribute data = new JsonExtensionDataAttribute();
                            data = '3335996838'*/
                using (var httpClient = new HttpClient())
                {
                    using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://billing.roblox.com/v1/gamecard/redeem"))
                    {
                        request.Headers.TryAddWithoutValidation("Accept", "application/json");

                        request.Content = new StringContent("3335996838", Encoding.UTF8, "application/json");

                        var response = await httpClient.SendAsync(request);

                        Console.WriteLine(request.Content);
                        Console.ReadLine();
                    }
                }
            }
            catch (WebException ex)
            {
                string content;
                using (StreamReader reader = new StreamReader(ex.Response.GetResponseStream()))
                {
                    content = reader.ReadToEnd();
                    Console.WriteLine(content);
                    Console.ReadLine();
                }
            }
        }

有人请帮帮我

主方法需要使用void返回类型。 您可以返回到void main并更改此行:

  var response = await httpClient.SendAsync(request);


.Result正在获取任务的结果值。

我怀疑您仍在使用Visual Studio 2017,因为
async Main


要允许
async Task Main
,您需要指定
LatestMinor
作为您的语言版本。(构建->高级->语言版本)
async Main
是一种C#7.1语言功能,在VS2017下,新项目默认为C#7.0。

删除
任务
,添加回
无效
。但是,您可以采纳以下建议:。之后你会有其他问题。在您获得响应之前,连接很有可能被关闭。谢谢,我有一个问题,如何将System.Net.Http.HttpContent转换为System.IO.Stream,这是一个出乎意料的问题,但我无法在线找到一个好的答案来帮助我解决此问题。这是我当前的代码``var response=httpClient.sendaync(request.Result);使用(var content1=new StreamReader(response.Content)){Console.WriteLine(content1);Console.ReadLine();}``我建议单独问一个问题,因为新的问题实际上与这个问题无关。将问题分开有助于吸引其他回答者,也有助于未来的谷歌用户。
  var response = await httpClient.SendAsync(request);
var response = httpClient.SendAsync(request).Result;