首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >http客户端-异常行为

http客户端-异常行为
EN

Stack Overflow用户
提问于 2012-08-15 05:10:40
回答 2查看 1.2K关注 0票数 0

我有以下代码,有时我发送到的处理程序在收到响应之前会超时(我不想延长默认的超时值)。发生这种情况时,会在有一个InnerExceptions的地方抛出一个AggregateException:

{“任务已取消。”} System.Exception {System.Threading.Tasks.TaskCanceledException}

代码语言:javascript
运行
复制
  var _httpClient = new HttpClient();
    var _content = new StringContent("thecontent");
    var responseMessagePost = _httpClient2.PostAsync("http://localhost:50643/handler1.ashx", _content).Result;

这是正确的行为吗?

我期望变量responseMessagePost的状态代码为RequestTimeout = 408。例如,当我执行以下操作时,不会抛出异常,并且会得到一个状态代码NotFound = 404。为什么行为会有所不同?

代码语言:javascript
运行
复制
var httpClient = new HttpClient();
var _content = new StringContent("thecontent");
var _responseMessagePost = httpClient.PostAsync("http://localhost:50643/handlerdoesnotexist.ashx", _content).Result;
EN

回答 2

Stack Overflow用户

发布于 2012-08-15 08:05:40

您得到的超时异常是由于HTTP客户端放弃了等待服务器产生响应。408是当服务器放弃等待客户端完成其请求时来自服务器的响应。

据我所知,你正在寻找的东西没有状态代码。如果服务器能够返回一个状态码,那么客户端就不需要超时了!

票数 2
EN

Stack Overflow用户

发布于 2014-11-14 22:00:12

我得到了同样的错误,并追踪到我的HttpClient超时。默认超时时间为100秒。我在HttpClient的创建过程中添加了以下内容。

代码语言:javascript
运行
复制
HttpClient httpClient = new HttpClient();
httpClient.Timeout = TimeSpan.FromMinutes(10);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11960784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档