创建用于测试目的的 Http 请求

本文关键字:Http 请求 用于 测试 创建 | 更新日期: 2023-09-27 17:56:26

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

我想知道是否存在一个创建真实 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
}

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

创建用于测试目的的 Http 请求

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

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