在 GetAsync 完成之前很久就结束请求的奇怪 HttpClient 日志记录

伊利亚·切尔诺莫迪克

我向 REST API 发出了一些 HTTP 请求,这些请求返回了大量数据(大约 100 MB)。我现在已经使用HttpClientFactory.Net Core 来获取数据并且它工作正常。但是让我感到困惑的是我的时间和来自图书馆本身的内部时间之间的差异。

这是来自库的示例消息:

在 130311.0094 毫秒后结束处理 HTTP 请求 - OK

问题是:即使库已经写完所有数据,真正下载所有数据也需要 20-30 秒(执行client.GetAsync()方法)。

我假设这里发生的事情是图书馆非常渴望在收到标题后立即报告,而无需等待正文下载。

这听起来真的像一个错误,但我不确定它是否是。也许有人对为什么会发生这种情况有更好的解释?

PS这是我的代码示例:

Stopwatch watch = new Stopwatch();
watch.Start();
var response = await Client.GetAsync(url);
watch.Stop();
Console.WriteLine($"Elapsed time {watch.ElapsedMilliseconds} ms");

我的日志中经过的时间比系统消息中的时间长得多

PPS 我试过运行,HttpCompletionOption.ResponseContentRead但它确实没有改变结果,它仍然有很大的不同。

伊利亚·切尔诺莫迪克

似乎这就是HttpClient日志框架使用的中间件的工作方式。由于某种原因在管道之外加载主体,因此日志记录总是在收到标头后立即发生。

github上这个问题的更多细节

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xamarin Forms HttpClient GetAsync

来自分类Dev

Xamarin表单HttpClient GetAsync

来自分类Dev

HttpClient GetAsync挂起

来自分类Dev

拦截C#HttpClient GetAsync

来自分类Dev

Windows Phone HttpClient GetAsync性能

来自分类Dev

HttpClient GetAsync方法403错误

来自分类Dev

HttpClient GetAsync线程池饥饿

来自分类Dev

Windows Phone HttpClient GetAsync性能

来自分类Dev

如何阻止HttpClient.GetAsync(uri)挂起?

来自分类Dev

HttpClient.getAsync()内存不足异常

来自分类Dev

从HttpClient.GetAsync()捕获OutOfMemory异常

来自分类Dev

HttpClient.GetAsync不起作用

来自分类Dev

带参数的ASP.NET Web Api HttpClient.GetAsync

来自分类Dev

使用HttpClient.GetAsync调用Web API似乎挂起

来自分类Dev

调用HttpClient.GetAsync时出错:基础连接已关闭

来自分类Dev

HttpClient.GetAsync()和CloudBlobBlock.UploadFromStreamAsync()-如何执行?

来自分类Dev

IBackgroundTask中的HttpClient.GetAsync出现问题

来自分类Dev

HttpClient.getAsync(URL)挂起并且不回复

来自分类Dev

HttpClient.GetAsync()抛出FileLoadException,找不到Newtonsoft.JsonNET

来自分类Dev

HttpClient GetAsync响应内容与Fiddler给我的内容不同

来自分类Dev

如何记录 HttpClient 请求,响应包括正文?

来自分类Dev

从方法外部取消GetAsync请求

来自分类Dev

日志记录和paramiko奇怪的行为

来自分类Dev

Python Flask奇怪的日志记录行为(kubernetes)

来自分类Dev

Python日志记录:属于一个请求的组日志

来自分类Dev

Dynamics 365 Web API:不带 OData-EntityId 的 GetAsync 记录

来自分类Dev

HttpClient.GetAsync永远不会在Xamarin.Android上返回

来自分类Dev

非泛型方法'HttpClient.GetAsync(string)'不能与类型参数一起使用

来自分类Dev

在服务结构服务中使用HttpClient.GetAsync引发“无法连接到远程服务”异常

Related 相关文章

  1. 1

    Xamarin Forms HttpClient GetAsync

  2. 2

    Xamarin表单HttpClient GetAsync

  3. 3

    HttpClient GetAsync挂起

  4. 4

    拦截C#HttpClient GetAsync

  5. 5

    Windows Phone HttpClient GetAsync性能

  6. 6

    HttpClient GetAsync方法403错误

  7. 7

    HttpClient GetAsync线程池饥饿

  8. 8

    Windows Phone HttpClient GetAsync性能

  9. 9

    如何阻止HttpClient.GetAsync(uri)挂起?

  10. 10

    HttpClient.getAsync()内存不足异常

  11. 11

    从HttpClient.GetAsync()捕获OutOfMemory异常

  12. 12

    HttpClient.GetAsync不起作用

  13. 13

    带参数的ASP.NET Web Api HttpClient.GetAsync

  14. 14

    使用HttpClient.GetAsync调用Web API似乎挂起

  15. 15

    调用HttpClient.GetAsync时出错:基础连接已关闭

  16. 16

    HttpClient.GetAsync()和CloudBlobBlock.UploadFromStreamAsync()-如何执行?

  17. 17

    IBackgroundTask中的HttpClient.GetAsync出现问题

  18. 18

    HttpClient.getAsync(URL)挂起并且不回复

  19. 19

    HttpClient.GetAsync()抛出FileLoadException,找不到Newtonsoft.JsonNET

  20. 20

    HttpClient GetAsync响应内容与Fiddler给我的内容不同

  21. 21

    如何记录 HttpClient 请求,响应包括正文?

  22. 22

    从方法外部取消GetAsync请求

  23. 23

    日志记录和paramiko奇怪的行为

  24. 24

    Python Flask奇怪的日志记录行为(kubernetes)

  25. 25

    Python日志记录:属于一个请求的组日志

  26. 26

    Dynamics 365 Web API:不带 OData-EntityId 的 GetAsync 记录

  27. 27

    HttpClient.GetAsync永远不会在Xamarin.Android上返回

  28. 28

    非泛型方法'HttpClient.GetAsync(string)'不能与类型参数一起使用

  29. 29

    在服务结构服务中使用HttpClient.GetAsync引发“无法连接到远程服务”异常

热门标签

归档