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
package http-media
package
This library is intended to be a comprehensive solution to parsing media types, including quality parameters, in HTTP headers. It addresses parsing of the Content-Type and Accept headers, and includes general data types for matching against the other accept headers as well. It encodes MIME parameters into a MediaType data, and allows the matching of the final value by comparing quality values from the client. Version 0.1.1
package http-monad
package
This library implements a monad class with various interesting instances: * Lazy I/O allows for fetching documents via HTTP on demand * Non-I/O allows for testing HTTP communication without any IO action By using this monad you can implement HTTP communication in a very general way. You may add further functionality by adding custom sub-classes. We inherit all content data types from the HTTP-4000 package, such as String as well as strict and lazy ByteString. Version 0.1.0.3
package http-proxy
package
http-proxy is a library for writing HTTP and HTTPS proxies. Use of the Conduit library provides file streaming via the proxy in both directions. Memory usage of the proxy scales linearly with the number of simultaneous connections and is independent of the size of the files being uploaded or downloaded. The Settings data type provided by the library allows the caller to supply a functions for exception reporting and request re-writing. Eventually, this capability will be expanded to allow optional logging, disk caching etc. Version 0.0.12
package http-querystring
package
The HTTP query builder. Version 1.0
package http-reverse-proxy
package
Provides a simple means of reverse-proxying HTTP requests. The raw approach uses the same technique as leveraged by keter, whereas the WAI approach performs full request/response parsing via WAI and http-conduit. Version 0.3.0
package http-server
package
A library for writing Haskell web servers. Version 1.0.3
package http-shed
package
This web server promotes a Request to IO Response function into a local web server. The user can decide how to interpret the requests, and the library is intended for implementing Ajax APIs. Version 0.1
package http-streams
package
Overview An HTTP client, using the Snap Framework's 'io-streams' library to hande the streaming IO. The API is optimized for ease of use for the rather common case of code needing to query web services and deal with the result. The library is exported in a single module; see Network.Http.Client for full documentation. Version 0.7.0.2
package http-types
package
Generic HTTP types for Haskell (for both client and server code). Version 0.8.3
package http-wget
package
This provides the simplest interface I could imagine to making HTTP requests. It supports GET and POST parameters. Since it simply wraps the WGET program, there are no library dependencies, and it automatically gets HTTPS. Version 0.6.2.3
package http2
package
HTTP/2.0 library including HPACK. Currently only (coming) HPACK 06 is supported. Version 0.1.1
package httpd-shed
package
This web server promotes a Request to IO Response function into a local web server. The user can decide how to interpret the requests, and the library is intended for implementing Ajax APIs. Version 0.4
httpPackageVersion :: String
HTTP Network.HTTP.Base
The version of this HTTP package as a string, e.g. "4000.1.2". This may be useful to include in a user agent string so that you can determine from server logs what version of this package HTTP clients are using. This can be useful for tracking down HTTP compatibility quirks.
package httpspec
package
Using httpspec you can write a specification for a HTTP requestresponse defining the method, headers, url parameters and the body.  This specification bidirectionally maps an abstract requestresponse data type to a concrete realisation as a HTTP requestresponse. The specification can be used to generate HTTP requestsresponses from an abstract description and it can be used to parse a HTTP requestresponse into such an abstract description.  The idea is very similar to the way pickling of XML data is described in HXT. For example, the abstract representation of an authentication request and response could be described as data AuthUserReq = AuthUserReq authUser_user :: String , authUser_pass :: String data AuthUserRes = AuthUserOk authUserOk_sid :: String | AuthUserFailed Using httpspec you can define a mapping between HTTP and these types: instance HasReqSpec AuthUserReq where reqSpec = rsMeth Http.POST $ rsPath &quot;authenticate-user&quot; $ rsWrap (uncurry AuthUserReq, (AuthUserReq a b) -> (a,b)) $ rsPair (rsParam &quot;uid&quot;) (rsParam &quot;pass&quot;) instance HasResSpec AuthUserRes where resSpec = rsSwitch [ rsCase (AuthUserOk,authUserOk_sid) $ rsStatus 200 $ rsContentType &quot;text/plain&quot; $ rsEncodingFixed UTF8 $ rsBody , rsCaseConst AuthUserFailed $ rsStatus 403 ] Version 0.3.0.1
httpVersion :: String
HTTP Network.HTTP.Base
package acme-http
package
winning the PONG benchmark at all costs Version 0.2.2
package BlastHTTP
package
Searches for a provided nucleotide or protein sequence with the NCBI Blast REST service and returns a blast result in xml format as BlastResult datatype. For more information on BLAST refer to: http://blast.ncbi.nlm.nih.gov/Blast.cgi. Information on the webservice can be found at: http://www.ncbi.nlm.nih.gov/BLAST/developer.shtml. If you plan to submit more than 20 searches in one session, please look up the Usage Guidelines in the webservice information. Version 0.0.1
package direct-http
package
This package is a native implementation of the HTTP and HTTPS protocols. It lives as a library, exporting an interface reminiscent of CGI or FastCGI. Thus policy on how namespace is mapped to files and/or scripts is entirely up to the client application. This package is partially compatible with direct-fastcgi by the same author, but is intended more by way of a replacement for it than a companion to it, and makes several design decisions differently.  The biggest is the use of MonadControlBase for exceptions. Version 0.6: Substantial reworking of MVar handling, using safer primitives to be much more robust in the face of exceptions in pure code. Version 0.5.3: Actually works with extension headers, by admitting the reality that they can occur anytime and not just with an entity. Version 0.5.2: Actually works with daemonization, by using a feature of direct-daemon added for this purpose to open the socket after forking but before dropping privileges. Version 0.5.1: Uses SafeSemaphore, which is the future, rather than QSem from base, which is deprecated. Version 0.5.0.1: This preliminary release is a preview to gauge community interest.  Not even all major features are implemented; things that exist only as stubs include encryption, compression, chunking, and reading back cookies.  Nonetheless it may be useful if run behind a reverse proxy that provides the missing features transparently, such as Apache. Version 0.6
failHTTPS :: Monad m => URI -> m ()
HTTP Network.HTTP.Base
package hack-handler-evhttp
package
Hack EvHTTP (libevent) Handler Version 2009.8.4

Show more results