http-streams

Haskell HTTP client library for use with io-streams

An HTTP client

An HTTP client library for Haskell using the Snap Framework’s io-streams library to handle the streaming IO.

A common case in writing RESTful web services is needing to make onward calls to further servers. This package is intended to make this easy to do. Though originally written for making calls from wep apps written with Snap, you can use this from any library or framework.

Enjoy!

Example

The underlying API is very simple:

main :: IO ()
main = do
    c <- openConnection "www.example.com" 80
    
    let q = buildRequest1 $ do
                http GET "/"
                setAccept "text/html"
    
    sendRequest c q emptyBody
    
    receiveResponse c (\p i -> do
    	putStr $ show p

    	x <- Streams.read i
    	S.putStr $ fromMaybe "" x)
    
    closeConnection c

There are also convenience functions for the common case of making straight-forward GET and POST requests; for instance:

    get "http://www.example.com/" (\_ i -> Streams.connect i stdout)

will {ahem} stream the response body to stdout. Perhaps more interesting (though less streams-oriented), is simply getting the response as a ByteString using one of the pre-defined handlers:

    x' <- get "https://secure.example.com/" concatHandler

See the documentation in Network.Http.Client for further examples and details of usage of the API. There’s also a blog post introducing the library with a discussion of the design and usage.

Change Log

Now included in separate file CHANGELOG.

AfC

Related Repositories

HTTP-Live-Video-Stream-Segmenter-and-Distributor

HTTP-Live-Video-Stream-Segmenter-and-Distributor

Segments live video streams based on the Apple HTTP Live Streaming protocol and pushes the resulting files to various locations. ...

Streams

Streams

Lazy evaluation in C++ - http://jscheiny.github.io/Streams/ ...

gohls

gohls

gohls - Downloader for HTTP Live Streaming (HLS) streams, written in Golang ...

AirMac

AirMac

server on mac to receive airplay streams from ios devices - original code repo from http://code.google.com/p/airmac ...

nginx-audio-track-for-hls-module

nginx-audio-track-for-hls-module

:sound: Nginx module that generates audio track for HTTP Live Streaming (HLS) streams on the fly. ...


Top Contributors

afcowie gregorycollins hvr chemist 3noch bitonic lukerandall snoyberg ddssff emmanueltouzery erikd rtrvrtg tanakh LukeHoersten MichaelXavier 23Skidoo ixmatus wereHamster noteed eyeinsky

Releases

-   v0.8.3.3 zip tar
-   v0.8.3.2 zip tar
-   v0.8.3.1 zip tar
-   v0.7.2.6 zip tar
-   v0.7.2.5 zip tar
-   v0.7.2.4 zip tar
-   v0.7.2.3 zip tar
-   v0.7.2.2 zip tar
-   v0.7.2.0 zip tar
-   v0.7.1.1 zip tar
-   v0.7.0.2 zip tar
-   v0.7.0.1 zip tar
-   v0.6.1.1 zip tar
-   v0.6.0.2 zip tar
-   v0.6.0.1 zip tar
-   v0.6.0.0 zip tar
-   v0.5.0.2 zip tar
-   v0.5.0.1 zip tar
-   v0.5.0.0 zip tar
-   v0.4.0.1 zip tar
-   v0.4.0.0 zip tar
-   v0.3.1.0 zip tar