http-client-overrides alternatives and similar packages
Based on the "http" category.
Alternatively, view http-client-overrides alternatives based on common mentions on social networks and blogs.
A simple abstraction over the "http-client" connection manager
Do you think we are missing an alternative of http-client-overrides or a related project?
You probably have some
IO do notation hidden somewhere which looks like this:
manager <- newManager tlsManagerSettings
Replace it with this:
settings <- withHttpClientOverridesThrow tlsManagerSettings manager <- newManager settings
HTTP_CLIENT_OVERRIDES environment variable to the location of your
configuration file. When this environment variable is not set there is no
additional overhead for HTTP requests as the
ManagerSettings will not be
modified. Refer to the [example](./example/) directory for a sample Haskell
program and configuration file.
Log HTTP requests and responses
The following fields can be used to print log messages for all HTTP responses, requests and request overrides:
version: v1 logOptions: responses: simple requests: simple requestOverrides: simple
The currently supported log formats are
detailed. Sample output
simple log format is shown below:
Overriding request: https://unreachable.domain/ -> https://github.com/ Request: GET https://github.com/ HTTP/1.1 Response: HTTP/1.1 200 OK
Override HTTP requests
Match HTTP requests corresponding to a match URL and transform the request according to an override URL:
version: v1 requestOverrides: - match: unreachable.domain override: github.com
Matches the first HTTP request which:
- has the same scheme, host and port as the match URL
- has a path which is a suffix of the path in the match URL
Any URL segments ommitted from the match URL are not required for matching.
Overrides an HTTP request with:
- the scheme, host and port specified in the override URL
- replaces the prefix of a matched path with the path in the override URL
Any URL segments ommitted from the override URL will not be applied to the HTTP request.
Override all HTTP requests on port 80 to use HTTPS on port 443 (note: the port is never automatically interpreted from the scheme):
version: v1 requestOverrides: - match: http://:80 override: https://:443
Override all requests to the host
github.com which have a path prefix of
/dhall-lang/dhall-lang/ to use a path prefix of
version: v1 requestOverrides: - match: https://github.com/dhall-lang/dhall-lang/ override: https://github.com/robbiemcmichael/dhall-lang/
detailed to see how the URLs have been
parsed and how any matched HTTP requests are being overridden.