稍微缩短 URL - 获取状态为 WaitingForActivation

Posted

技术标签:

【中文标题】稍微缩短 URL - 获取状态为 WaitingForActivation【英文标题】:Bitly shorten URL - getting status as WaitingForActivation 【发布时间】:2021-12-07 19:58:51 【问题描述】:

我正在尝试使用 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); 

【问题讨论】:

你在哪里看到这个状态? 在我调用此 GetShortUrl 函数的另一种方法中。 为什么你一直把你的代码当作 html 来处理? 问题显然是你没有在等待GetShortUrl... @Llama,是的,你是对的。我在等待 GetShortUrl,它成功了。 【参考方案1】:

这个问题的简单原因是当执行以下给定的爱时:-

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

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

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

因此无法正常执行。

解决此问题的方法是创建一个等待期,直到返回一些响应。返回响应后,移至下一行,然后返回链接。

【讨论】:

您能告诉我如何创建一个等待期,直到响应返回? 尝试添加“resp.wait();”在声明链接变量之前

以上是关于稍微缩短 URL - 获取状态为 WaitingForActivation的主要内容,如果未能解决你的问题,请参考以下文章

URL缩短算法

如何在不重定向原始 URL 的情况下获取短 URL 服务的信息或实际信息

使用 JSON 使用 Javascript 缩短 URL

使用亚马逊广告 API 为产品创建缩短 URL

AGC如何快速部署Serverless Url缩短模板

缩短链接上的 URL 文本,如 ***?