summaryrefslogtreecommitdiff
blob: 63a06ffc206ddcab15851cd2bace774c718bb16d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<herd>haskell</herd>
	<longdescription>
		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&#39;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&#39;s an example use:
		
		&gt;
		&gt;    do
		&gt;      rsp &lt;- Network.HTTP.simpleHTTP (getRequest &quot;http://www.haskell.org/&quot;)
		&gt;              -- fetch document and return it (as a &#39;String&#39;.)
		&gt;      fmap (take 100) (getResponseBody rsp)
		&gt;
		&gt;    do
		&gt;      rsp &lt;- Network.Browser.browse $ do
		&gt;               setAllowRedirects True -- handle HTTP redirects
		&gt;               request $ getRequest &quot;http://google.com/&quot;
		&gt;      fmap (take 100) (getResponseBody rsp)
		&gt;
		
		Git repository available at &lt;git://github.com/haskell/HTTP.git&gt;
	</longdescription>
	<use>
		<flag name='conduit10'>Use version 1.0.x or below of the conduit package (for the test suite).</flag>
		<flag name='network-uri'>Get Network.URI from the network-uri package.</flag>
	</use>
</pkgmetadata>