突然无法更改 HttpClient 上的超时
Posted
技术标签:
【中文标题】突然无法更改 HttpClient 上的超时【英文标题】:Suddenly can't change timeout on HttpClient 【发布时间】:2019-12-20 13:07:50 【问题描述】:我有以下代码临时更改单例 HttpClient 的超时...
Task IncreaseTimeout(Func<Task> action)
var initialTimeout = Client.HttpClient.Timeout;
try
Client.HttpClient.Timeout = new TimeSpan(0, 5, 0);
return action();
finally
Client.HttpClient.Timeout = initialTimeout;
到目前为止,它在 ios 和 android 上都可以正常工作,当更新 Timeout
属性时出现以下错误...
此实例已启动一个或多个请求。属性可以 仅在发送第一个请求之前进行修改。
为什么现在只在一个平台上开始发生这种情况?
【问题讨论】:
尝试在 Android 项目选项中更改 HttpClient 实现 好主意,但没有效果。 【参考方案1】:看起来我所拥有的这种新的 Android 行为实际上是正确的。所以我将默认设置为一分钟而不是三十秒,我希望在上传文件时做到最好。
【讨论】:
【参考方案2】:它是这样设计的,当您设置超时时,它会检查 httpclient 对象是否已释放或是否已使用该对象发出请求?
应该在通过客户端发出任何请求之前设置超时属性,否则它将抛出 InvalidOperationException 并引用相关消息。首次使用 HttpClient 后不要更改超时时间。
【讨论】:
以上是关于突然无法更改 HttpClient 上的超时的主要内容,如果未能解决你的问题,请参考以下文章
Apache HttpClient 4.0 无法在 Android 上的套接字超时
在 Microsoft.Owin.Testing.TestServer 的 HttpClient 上更改超时没有效果