我编写了一个对 Bitly 的 API 的 Restsharp 调用并且它起作用了。我收到了 200、300、400 和 500 范围内编号的 HTTP StatusCode。
现在切换到使用 BitlyAPI Nuget 包,我得到了 RanToCompletion 或 WaitingForActivation 的字符串状态条件。代码有效,但是——
1. 有没有办法通过BitlyAPI PostShorten(GetResponse)代码获取编号的Http-StatisCode?
2. 如果不是,我们可能从 GetResponse 获得的所有状态短语是什么?它们相当于什么状态代码?我为此寻找了一份记录在案的清单,但还没有找到。
我需要能够识别 API 通信问题并设置可能的纠正措施。
谢谢!
using System;
using System.Threading.Tasks;
using BitlyAPI;
namespace ConsoleAPITester
{
internal class Program
{
static void Main(string[] args)
{
string authcode = "xyz123";
string domain = "somecompany.com";
string groupguid = null;
string longurl = @"https://example.com";
CallShorten(authcode,longurl, domain, groupguid);
}
public static async void CallShorten(string authcode, string longurl, string domain, string groupguid = null)
{
BitlyAPI.Bitly BPI = new BitlyAPI.Bitly(authcode);
Task<BitlyLink> response = BPI.PostShorten(longurl, groupguid, domain);
response.Wait();
Console.WriteLine("Status:" + response.Status);
Console.WriteLine("Result:created_at:" + response.Result.CreatedAt);
Console.WriteLine("Result:id:" + response.Result.Id);
Console.WriteLine("Result:link:" + response.Result.Link);
}
}
}
BitlyAPI Bitly 类中GetResponse 方法(由PostShorten 调用)的最后三行从VS2022 中的“go to definition”获取。我猜从 HttpStatusCode 到 Status(phrase) 的转变是在 EnsureSuccessStatusCode 中吗?
HttpResponseMessage obj = await httpClient.SendAsync(request).ConfigureAwait(continueOnCapturedContext: false);<br/>
obj.EnsureSuccessStatusCode();<br/>
return JsonConvert.DeserializeObject<T>(await obj.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false));<br/>
输出:
状态:RanToCompletion
结果:创建时间:2023-04-25T17:44:40+0000
结果:id:somecompany.com/xyz123
结果:链接:https://somecompany.com/xyz123