HTTP +Network

package HTTP
package
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 &quot;http://www.haskell.org/&quot;) > -- 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 &quot;http://www.haskell.org/&quot; > return (take 100 (rspBody rsp)) Version 4000.2.10
module Network.HTTP
HTTP Network.HTTP
The HTTP module provides a simple interface for sending and receiving content over HTTP in Haskell. Here's how to fetch a document from a URL and return it as a String: > simpleHTTP (getRequest "http://www.haskell.org/") >>= fmap (take 100) . getResponseBody > -- fetch document and return it (as a 'String'.) Other functions let you control the submission and transfer of HTTP Requests and Responses more carefully, letting you integrate the use of HTTP functionality into your application. The module also exports the main types of the package, Request and Response, along with Header and functions for working with these. The actual functionality is implemented by modules in the Network.HTTP.* namespace, letting you either use the default implementation here by importing Network.HTTP or, for more specific uses, selectively import the modules in Network.HTTP.*. To wit, more than one kind of representation of the bulk data that flows across a HTTP connection is supported. (see Network.HTTP.HandleStream.) NOTE: The Request send actions will normalize the Request prior to transmission. Normalization such as having the request path be in the expected form and, possibly, introduce a default Host: header if one isn't already present. If you do not want the requests tampered with, but sent as-is, please import and use the the Network.HTTP.HandleStream or Network.HTTP.Stream modules instead. They export the same functions, but leaves construction and any normalization of Requests to the user. NOTE: This package only supports HTTP; it does not support HTTPS. Attempts to use HTTPS result in an error.
package HTTP-Simple
package
DEPRECATED Enable simple wrappers to Network.HTTP Version 0.2
type HTTPRequest a = Request a
HTTP Network.HTTP.Base
type HTTPResponse a = Response a
HTTP Network.HTTP.Base
package http-accept
package
Functions for working with HTTP Accept headers.  You may also want check out parseHttpAccept from wai-extra:Network.Wai.Parse (it is not tied to WAI in any way and some similar may make it into this package eventually). Version 0.2
package http-attoparsec
package
Attoparsec parsers for http-types. Version 0.1.0
package http-client
package
This codebase has been refactored from http-conduit. Version 0.2.0.3
package http-client-auth
package
Multiple challenges aren't implemented. Authentication-Info header isn't either. Version 0.1.0.0
package http-client-conduit
package
Intended for use by higher-level libraries, such as http-conduit. Version 0.2.0.1
package http-client-multipart
package
package http-client-openssl
package
Intended for use by higher-level libraries. Version 0.2.0.0
package http-client-tls
package
Intended for use by higher-level libraries, such as http-conduit. Version 0.2.0.2
package http-common
package
Overview Base types used by a variety of HTTP clients and servers. See http-streams Network.Http.Client or pipes-http Pipes.Http.Client for full documentation. You can import Network.Http.Types if you like, but both http-streams and pipes-http re-export this package's types and functions. Version 0.7.0.1
package http-conduit
package
This package uses conduit for parsing the actual contents of the HTTP connection. It also provides higher-level functions which allow you to avoid directly dealing with streaming data. See http://www.yesodweb.com/book/http-conduit for more information. The Network.HTTP.Conduit.Browser module has been moved to http://hackage.haskell.org/package/http-conduit-browser/ The Network.HTTP.Conduit.MultipartFormData module has been moved to http://hackage.haskell.org/package/http-client-multipart/ Version 2.0.0.3
package http-conduit-browser
package
This package creates a monad representing things that browsers do, letting you elegantly describe a browsing session. This package wraps the http-conduit package by Michael Snoyman. Version 1.9.0.2
package http-conduit-downloader
package
HTTPHTTPS downloader built on top of http-conduit and used in <https:/bazqux.com> crawler. * Handles all possible http-conduit exceptions and returns human readable error messages. * Handles some web server bugs (returning deflate data instead of gzip). * Ignores invalid SSL sertificates. * Receives data in 32k blocks internally to reduce memory fragmentation on many parallel downloads. * Download timeout. * Total download size limit. * Returns HTTP headers for subsequent redownloads and handles 'Not modified' results. * Can be used with external DNS resolver (hsdns-cache for example). Version 1.0.10
package http-date
package
Fast parser and formatter for HTTP Date Version 0.0.4
package http-encodings
package
A library for encoding and decoding bodies of HTTP messages, designed to work with the HTTP and http-server libraries. No heuristic encoding detection at this time. WANTED: a library implementing the Unix &quot;compress&quot; command encoding/decoding (or the LZW algorithm). Version 0.9.1
package http-enumerator
package
This package has been deprecated in favor of http-conduit (http://hackage.haskell.org/package/http-conduit), which provides a more powerful and simpler interface. The API is very similar, and migrating should not be problematic. Send concerns about this move to the maintainer (address listed above). Version 0.7.3.3

Show more results