使用ASP.NET Web API模拟响应超时

时间:2016-12-29 23:41:58

标签: asp.net asp.net-web-api

假设我有一个不断向服务请求流的客户端,我想自动测试它。因此,作为测试的一部分,我创建了一个返回流的服务。以下代码片段构造响应并返回它:

HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StreamContent(fstream);
response.Content.Headers.ContentType = mediaType;
return response;

这适用于客户端调用API并及时获得响应的成功案例。但我也想模拟一些超时失败。

如果我想在返回任何响应部分之前模拟超时,我只需在返回响应之前添加 Thread.Sleep()

我的问题是:如何模拟服务已经开始返回响应的超时情况?我想模拟响应头后的服务超时已发送,但在发送 fstream 之前。

1 个答案:

答案 0 :(得分:0)

也许尝试这样的事情?

var response = HttpContext.Current.Response;
response.Buffer = false;
response.AddHeader("SomeHeader","SomeValue");
response.Write("Some body text.");
System.Threading.Thread.Sleep(WEB_SERVER_TIMEOUT_VALUE + 1);