稍微缩短 URL - 获取 WaitingForActivation 状态

Bitly shorten URL - getting status as WaitingForActivation

我正在尝试生成短 link 使用 bitly 但得到“Status = WaitingForActivation

public async Task<string> GetShortUrl(string url)
{
    var myAccessToken = "Token";
    var client = new HttpClient();
    client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $"Bearer {myAccessToken}");

    var content = new
    {
        long_url = url
    };
    //HTTP POST
    var resp = await client.PostAsJsonAsync("https://api-ssl.bitly.com/v4/shorten", content);
    var link = await resp.Content.ReadAsStringAsync();
    return link;
}

[HttpGet("redirectUser/{PlanId}")]
        [ValidateModelState]
        public async Task<IActionResult> sendNotification(Guid PlanId)
        {
             var surveylink = "https://chats.landbot.io";
             // getting Status = WaitingForActivation
             var shortLink = GetShortUrl(surveylink); 
            }
        }

我在

收到 Status = WaitingForActivation

var shortLink = GetShortUrl(surveylink); 

这个问题的原因很简单,就是下面的love在执行的时候:-

var resp = await client.PostAsJsonAsync("https://api-ssl.bitly.com/v4/shorten", content);

它导致代码在没有完成当前部分的情况下移动到下一行。所以,下一行:-

var link = await resp.Content.ReadAsStringAsync();

因此无法正常执行。

要解决此问题,您可以创建一个等待期,直到 returned 做出某些响应。一旦响应被 returned,然后移动到下一行,然后 return link。