HTTP-4000.2.19: A library for client-side HTTP

Copyright | See LICENSE file
License | BSD
Maintainer | Ganesh Sittampalam <ganesh@earth.li>
Stability | experimental
Portability | non-portable (not tested)
Safe Haskell | None
Language | Haskell98

Network.HTTP.Proxy

Description

Handling proxy server settings and their resolution.

Synopsis

- data Proxy
  - = NoProxy
  - | Proxy String (Maybe Authority)
- noProxy :: Proxy
- fetchProxy :: Bool -> IO Proxy
- parseProxy :: String -> Maybe Proxy

# Documentation

data Proxy

HTTP proxies (or not) are represented via `Proxy`, specifying if a proxy should be used for the request (see `setProxy`)

Constructors

NoProxy | Don't use a proxy.
Proxy String (Maybe Authority) | Use the proxy given. Should be of the form "http://host:port", "host", "host:port", or "http://host". Additionally, an optional `Authority` for authentication with the proxy.

noProxy :: Proxy

fetchProxy :: Bool -> IO Proxy

`fetchProxy flg` gets the local proxy settings and parse the string into a `Proxy` value. If you want to be informed of ill-formed proxy configuration strings, supply `True` for `flg`. Proxy settings are sourced from the `HTTP_PROXY` environment variable, and in the case of Windows platforms, by consulting IE/WinInet's proxy setting in the Registry.

parseProxy :: String -> Maybe Proxy

`parseProxy str` translates a proxy server string into a `Proxy` value; returns `Nothing` if not well-formed.