【问题标题】:Bitly shorten URL - getting status as WaitingForActivation稍微缩短 URL - 获取状态为 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,它成功了。

标签: c# asp.net-mvc .net-core bitly


【解决方案1】:

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

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

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

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

因此无法正常执行。

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

【讨论】:

  • 您能告诉我如何创建一个等待期,直到响应返回?
  • 尝试添加“resp.wait();”在声明链接变量之前
猜你喜欢
  • 1970-01-01
  • 2015-02-25
  • 2020-08-04
  • 1970-01-01
  • 2013-06-28
  • 2014-12-01
  • 2019-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多