我有以下代码临时更改单例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
属性更新时,它给出以下错误...
此实例已启动一个或多个请求。属性可以 只能在发送第一个请求之前进行修改。
为什么现在只在一个平台上开始这种情况?
答案 0 :(得分:0)
看起来我的这种新Android行为实际上是正确的。因此,我将默认值设置为一分钟而不是三十秒,我希望上传文件时能达到最佳效果。
答案 1 :(得分:0)
它是按照这种方式设计的,当您设置超时时,它会检查httpclient对象是否已释放或是否已使用该对象发出请求?
Timeout属性应该在通过客户端发出的任何请求之前设置,否则它将引发InvalidOperationException以及所引用的消息。第一次使用HttpClient之后,请勿更改超时。