gpt4 book ai didi

c# - 如何使用 HttpClient 类 C# 获得第一个字节的时间

转载 作者:可可西里 更新时间:2023-11-01 16:30:07 25 4
gpt4 key购买 nike

这是我目前用来调用 api 的代码,其中 api 是传递给函数的字符串。 httpClient 的设置是在方法之外预先完成的。

HttpResponseMessage response = await httpClient.GetAsync(api);
String strResp = await response.Content.ReadAsStringAsync();

httpClient.DefaultRequestHeaders.Accept.Clear();

有没有一种方法可以使用此代码跟踪首字节时间 (TTFB) 等指标,还是我必须走另一条路?

最佳答案

您应该能够将 HttpClient.GetAsync(string requestUri, HttpCompletionOption completionOption) 方法与 HttpCompleteOption.ResponseHeadersRead 一起使用。这应该在读取 header 后立即返回 HttpResponseMessage(不完全是 TTFB - “Time to first byte”,而是 TTHR - “Time till header read”)

然后你可以用秒表测量这个时间:

sw = new Stopwatch();
sw.Start();
HttpResponseMessage response = await httpClient.GetAsync(api);
sw.Stop();
Console.WriteLine("TTFB: " + sw.EleapsedMilliseconds)
String strResp = await response.Content.ReadAsStringAsync();

但由于此代码的并行性质,这也非常不可靠。

In this post有人建议将 WebClient 及其 DownloadProgressChanged 与“秒表”结合使用。

关于c# - 如何使用 HttpClient 类 C# 获得第一个字节的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34932394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com