突然无法在 HttpClient 上更改超时
Suddenly can't change timeout on HttpClient
我有以下代码临时更改单例 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
属性 更新时出现以下错误...
This instance has already started one or more requests. Properties can
only be modified before sending the first request.
为什么现在只在一个平台上发生这种情况?
看起来我的这种新 Android 行为实际上是正确的。所以我将我的默认值设置为一分钟而不是三十秒,我希望上传文件时最好。
它是这样设计的,当您设置超时时,它会检查是否处理了 httpclient 对象或是否已经使用该对象发出了请求?
Timeout 属性 应该在通过客户端发出任何请求之前设置,否则它会抛出 InvalidOperationException 并引用相关消息。首次使用 HttpClient 后不要更改超时。
我有以下代码临时更改单例 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
属性 更新时出现以下错误...
This instance has already started one or more requests. Properties can only be modified before sending the first request.
为什么现在只在一个平台上发生这种情况?
看起来我的这种新 Android 行为实际上是正确的。所以我将我的默认值设置为一分钟而不是三十秒,我希望上传文件时最好。
它是这样设计的,当您设置超时时,它会检查是否处理了 httpclient 对象或是否已经使用该对象发出了请求?
Timeout 属性 应该在通过客户端发出任何请求之前设置,否则它会抛出 InvalidOperationException 并引用相关消息。首次使用 HttpClient 后不要更改超时。