创建Http请求以进行测试

时间:2013-01-29 14:48:15

标签: c# http testing

我需要与类似主题的问题完全不同的东西。

我想知道是否存在一个创建真实http请求流的.NET库(显然是以参数方式)。 这不适用于ASP.NET或其他Web框架,我想要一个原始字节流(不是各种 http上下文的模拟对象)。

我故意从问题标题中省略了,因为我需要一个真正的http请求,但我不想要一个通过网络发送它的组件。

[ebohlman注意]:如果我读得正确,更明确的方法就是“......根据提供的参数创建一个模拟的http请求流(在原始字节级别)......”

基本上我应该能够(它遵循伪C#):

[Fact]
void Parse_http_request_headers() {
  HttpRequest req = HttpRequestBuilder.Create(HttpMethod.Get, "http://someserver/app/etc/etc");

  HttpParser parser = new HttpParser(req.ToByteArray());

  parser.Method.Should().Be("GET");
  parser.Scheme.Should().Be("http");
  // Remainder omitted
}

我只是想知道是否有人已经创建了这样的东西。

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是创建一个使用TcpListener来捕获和保存请求流的程序。在本地计算机上运行它。

然后,在一个单独的程序中,创建一个常规HttpWebRequest并将其发送到正在收听的程序。侦听器将流保存到二进制文件,现在您可以检查请求流。