HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Package4000.4.1Network

HTTP

A library for client-side HTTP

Modules

14 modules
  • Network.Browser58Session-level interactions over HTTP. The Network.Browser goes beyond the basic Network.HTTP functionality in
  • Network.BufferType5In order to give the user freedom in how request and response content
  • Network.HTTP12The Network.HTTP module provides a simple interface for sending and
  • Network.HTTP.Auth6Representing HTTP Auth values in Haskell.
  • Network.HTTP.Base54Definitions of Request and Response types along with functions
  • Network.HTTP.Cookie4This module provides the data types and functions for working with HTTP cookies.
  • Network.HTTP.HandleStream7A HandleStream-based version of Network.HTTP interface. For more detailed information about what the individual exports do, please consult
  • Network.HTTP.Headers17This module provides the data types for representing HTTP headers, and
  • Network.HTTP.Proxy4Handling proxy server settings and their resolution.
  • Network.HTTP.Stream6Transmitting HTTP requests and responses holding String in their payload bodies.
  • Network.Stream8An library for creating abstract streams. Originally part of Gray's/Bringert's
  • Network.StreamDebugger3Implements debugging of Streams. Originally part of Gray's/Bringert's
  • Network.StreamSocket2Socket Stream instance. Originally part of Gray's/Bringert's HTTP module. Changes by Robin Bate Boerop robin@bateboerop.name: Made depen…
  • Network.TCP14Some utility functions for working with the Haskell network package. Mostly

Description

The HTTP package supports client-side web programming in Haskell. It lets you set up HTTP connections, transmitting requests and processing the responses coming back, all from within the comforts of Haskell. It's dependent on the network package to operate, but other than that, the implementation is all written in Haskell.

A basic API for issuing single HTTP requests + receiving responses is provided. On top of that, a session-level abstraction is also on offer (the BrowserAction monad); it taking care of handling the management of persistent connections, proxies, state (cookies) and authentication credentials required to handle multi-step interactions with a web server.

The representation of the bytes flowing across is extensible via the use of a type class, letting you pick the representation of requests and responses that best fits your use. Some pre-packaged, common instances are provided for you (ByteString, String).

Here's an example use:

do rsp <- Network.HTTP.simpleHTTP (getRequest "http://www.haskell.org/") -- fetch document and return it (as a 'String'.) fmap (take 100) (getResponseBody rsp) do (_, rsp) <- Network.Browser.browse $ do setAllowRedirects True -- handle HTTP redirects request $ getRequest "http://www.haskell.org/" return (take 100 (rspBody rsp))

Note: This package does not support HTTPS connections. If you need HTTPS, take a look at the following packages:

http-streams http-client (in combination with http-client-tls) req wreq

Depends on

9 packages

Used by in this set · 2