HttpresponseMessage risposta = await client.PostAsync(new Uri(uri), queryString);提前结束执行

HttpresponseMessage risposta = await client.PostAsync(new Uri(uri), queryString); ends execution prematurely

我正在尝试使用一些 C# 代码连接到 CheckPoint API,我输入所有数据(用户名和密码 json 格式并编译 Uri),当我调用它时它就结束了无一例外的执行

这是代码

 public async Task<HttpResponseMessage> CPAPICall()
    {
        HttpClient client = new HttpClient();
        Console.Write("username: ");
        String uname = Console.ReadLine();
        Console.Write("password: ");
        String pwd = Console.ReadLine();
        String json = "{\n" +
                      "\"user\":" + "\"" + uname + "\",\n" +
                      "\"password\"" + "\"" + pwd + "\",\n" +
                      "}";
        StringContent queryString = new StringContent(json, Encoding.UTF8, "application/json");
        Console.WriteLine("Inserisci l'IP e la porta della management CP a cui vuoi connetterti (Esempio 192.168.1.1:443, se non si inserisce la porta quella di default è 443):");
        String IpAddr = Console.ReadLine();
        String[] IpAddrEPort = new String[2];
        HttpResponseMessage risposta = new HttpResponseMessage();
        if (IpAddr.Contains(":"))
        {
            IpAddrEPort = IpAddr.Split(':');
        }
        else
        {
            IpAddrEPort[0] = IpAddr;
            IpAddrEPort[1] = "443";
        }

        String uri = "https://" + IpAddr + "/web_api/login";
        try
        {
            risposta = await client.PostAsync(new Uri(uri), queryString);
        }
        catch (HttpListenerException e)
        {
            Console.WriteLine(e);
            Console.ReadKey();
        }
        String risp = risposta.StatusCode.ToString();
        Console.WriteLine(risp);
        Console.ReadKey();
        return risposta;
    }

json 字符串管理非常糟糕,但在我测试时它对我有帮助。

代码到此结束risposta = await client.PostAsync(new Uri(uri), queryString);

对原因有什么建议吗?

我建议使用 Newtonsoft.Json 将您的字符串数据正确序列化为 JSON,这样会好 100%。关于过早结束,我认为调用 'CPAPICall' 的方法不是以异步方式执行的,因此请检查此方法是否是异步创建的,并在 'CPAPICall' 之前使用 await 运算符线.