self hosting HTTP server for testing


Keywords
http
License
BSD-2-Clause
Install
Install-Package SelfishHttp -Version 0.3.0

Documentation

Selfish HTTP

Because at some point, you'll want your own HTTP server.

Installation

PM> Install-Package SelfishHttp

Lets See

SelfishHttp is an easy to use HTTP server that you can configure with regular C# code. Great for mocking out real HTTP servers in tests.

GET

using SelfishHttp;

...

var server = new Server(4567);
server.OnGet("/").RespondWith("hi, this is selfish HTTP!");

POST

var server = new Server(4567);
server.OnPost("/").Respond((req, res) => {
    var requestBody = req.BodyAs<string>();
    ...
    res.Headers["Location"] = "/newthingo";
    res.Body = "all done";
});

Loads of other stuff

It supports:

  • All the verbs: GET, PUT, POST, DELETE, OPTIONS, HEAD, PATCH. Any others?
  • Basic Authentication.
  • CORS.
  • Stream bodies.
  • An connect-like handler interface, for injecting HTTP handlers into the request/response pipeline.
  • An expressive builder interface for building up handlers.
  • Extensible body parsers and writers for different content types.
  • Able to proxy requests to other servers.
  • Option to disable client caching in response headers

See the tests for examples.

License

BSD