HTTP Post 死锁

问题描述

我有这个代码

private static async Task<HttpResponseMessage> SendPost(string url,HttpRequestMessage requestBody)
        {
            var ts = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
            var signature = CreateSignature(ts,HttpMethod.Post,url,RequestBodyToBytes(requestBody));

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            var client = new HttpClient
            {
                BaseAddress = new Uri(SUMSUB_TEST_BASE_URL)
            };
            client.DefaultRequestHeaders.Add("X-App-Token",SUMSUB_APP_TOKEN);
            client.DefaultRequestHeaders.Add("X-App-Access-Sig",signature);
            client.DefaultRequestHeaders.Add("X-App-Access-Ts",ts.ToString());

            var response = await client.PostAsync(url,requestBody.Content);

            if (!response.IsSuccessstatusCode)
            {
            }
            return response;
        }

当我在控制台应用程序中运行它时,没有任何问题并且运行良好。但是当我在 xamarin 上运行它时,它遇到了死锁。

一旦这一行“var response = await client.PostAsync(url,requestBody.Content);”执行,会死锁。

有什么见解吗?

解决方法

我不知道,但添加 Cofigureawait(false) 似乎可以解决问题。