You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Bitly短链生成异步方法返回WaitingForActivation状态求助

问题原因

你调用async标记的异步方法时没有加await关键字,此时变量shortLink拿到的不是方法返回的短链字符串结果,而是尚未执行完成的Task<string>对象,WaitingForActivation是Task对象等待系统调度执行的默认状态,属于异步编程的正常现象,不是报错。

解决方法

在调用GetShortUrl方法的代码前添加await关键字,等待异步方法执行完成后即可直接拿到返回的字符串结果:

[HttpGet("redirectUser/{PlanId}")]
[ValidateModelState]
public async Task<IActionResult> sendNotification(Guid PlanId)
{
     var surveylink = "https://chats.landbot.io";
     // 添加await关键字等待异步执行完成
     var shortLink = await GetShortUrl(surveylink); 
     // 此处补充后续业务逻辑即可
}

额外优化建议

  • 不要在GetShortUrl方法内每次调用都新建HttpClient实例,频繁创建销毁会导致套接字资源耗尽,建议通过依赖注入注入IHttpClientFactory来创建客户端,或者使用静态HttpClient实例复用连接。
  • 调用Bitly接口后建议先判断响应状态码是否为成功状态,再读取响应内容,避免接口调用出错时后续逻辑异常。
  • 当前GetShortUrl方法直接返回Bitly接口的完整JSON响应字符串,如果你只需要短链地址,还需要对返回的JSON做反序列化,提取出对应短链字段再使用。

内容的提问来源于stack exchange,提问作者Raneu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:39:02