稍微缩短 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 = WaitingForActivationvar 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的主要内容,如果未能解决你的问题,请参考以下文章