<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Network.HTTP.Headers</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_Network-HTTP-Headers.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Network-HTTP-Headers.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">HTTP-4000.1.1: A library for client-side HTTP</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (not tested)</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Sigbjorn Finne <sigbjorn.finne@gmail.com></td></tr></table><p class="caption">Network.HTTP.Headers</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides the data types for representing HTTP headers, and operations for looking up header values and working with sequences of header values in <code>Request</code>s and <code>Response</code>s. To avoid having to provide separate set of operations for doing so, we introduce a type class <code><a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a></code> to facilitate writing such processing using overloading instead. </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:HasHeaders">HasHeaders</a> x <span class="keyword">where</span><ul class="subs"><li><a href="#v:getHeaders">getHeaders</a> :: x -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>]</li><li><a href="#v:setHeaders">setHeaders</a> :: x -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>] -> x</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Header">Header</a> = <a href="#v:Header">Header</a> <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li class="src short"><a href="#v:mkHeader">mkHeader</a> :: <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> <a href="Network-HTTP-Headers.html#t:Header">Header</a></li><li class="src short"><a href="#v:hdrName">hdrName</a> :: <a href="Network-HTTP-Headers.html#t:Header">Header</a> -> <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a></li><li class="src short"><a href="#v:hdrValue">hdrValue</a> :: <a href="Network-HTTP-Headers.html#t:Header">Header</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:HeaderName">HeaderName</a> <ul class="subs"><li>= <a href="#v:HdrCacheControl">HdrCacheControl</a> </li><li>| <a href="#v:HdrConnection">HdrConnection</a> </li><li>| <a href="#v:HdrDate">HdrDate</a> </li><li>| <a href="#v:HdrPragma">HdrPragma</a> </li><li>| <a href="#v:HdrTransferEncoding">HdrTransferEncoding</a> </li><li>| <a href="#v:HdrUpgrade">HdrUpgrade</a> </li><li>| <a href="#v:HdrVia">HdrVia</a> </li><li>| <a href="#v:HdrAccept">HdrAccept</a> </li><li>| <a href="#v:HdrAcceptCharset">HdrAcceptCharset</a> </li><li>| <a href="#v:HdrAcceptEncoding">HdrAcceptEncoding</a> </li><li>| <a href="#v:HdrAcceptLanguage">HdrAcceptLanguage</a> </li><li>| <a href="#v:HdrAuthorization">HdrAuthorization</a> </li><li>| <a href="#v:HdrCookie">HdrCookie</a> </li><li>| <a href="#v:HdrExpect">HdrExpect</a> </li><li>| <a href="#v:HdrFrom">HdrFrom</a> </li><li>| <a href="#v:HdrHost">HdrHost</a> </li><li>| <a href="#v:HdrIfModifiedSince">HdrIfModifiedSince</a> </li><li>| <a href="#v:HdrIfMatch">HdrIfMatch</a> </li><li>| <a href="#v:HdrIfNoneMatch">HdrIfNoneMatch</a> </li><li>| <a href="#v:HdrIfRange">HdrIfRange</a> </li><li>| <a href="#v:HdrIfUnmodifiedSince">HdrIfUnmodifiedSince</a> </li><li>| <a href="#v:HdrMaxForwards">HdrMaxForwards</a> </li><li>| <a href="#v:HdrProxyAuthorization">HdrProxyAuthorization</a> </li><li>| <a href="#v:HdrRange">HdrRange</a> </li><li>| <a href="#v:HdrReferer">HdrReferer</a> </li><li>| <a href="#v:HdrUserAgent">HdrUserAgent</a> </li><li>| <a href="#v:HdrAge">HdrAge</a> </li><li>| <a href="#v:HdrLocation">HdrLocation</a> </li><li>| <a href="#v:HdrProxyAuthenticate">HdrProxyAuthenticate</a> </li><li>| <a href="#v:HdrPublic">HdrPublic</a> </li><li>| <a href="#v:HdrRetryAfter">HdrRetryAfter</a> </li><li>| <a href="#v:HdrServer">HdrServer</a> </li><li>| <a href="#v:HdrSetCookie">HdrSetCookie</a> </li><li>| <a href="#v:HdrTE">HdrTE</a> </li><li>| <a href="#v:HdrTrailer">HdrTrailer</a> </li><li>| <a href="#v:HdrVary">HdrVary</a> </li><li>| <a href="#v:HdrWarning">HdrWarning</a> </li><li>| <a href="#v:HdrWWWAuthenticate">HdrWWWAuthenticate</a> </li><li>| <a href="#v:HdrAllow">HdrAllow</a> </li><li>| <a href="#v:HdrContentBase">HdrContentBase</a> </li><li>| <a href="#v:HdrContentEncoding">HdrContentEncoding</a> </li><li>| <a href="#v:HdrContentLanguage">HdrContentLanguage</a> </li><li>| <a href="#v:HdrContentLength">HdrContentLength</a> </li><li>| <a href="#v:HdrContentLocation">HdrContentLocation</a> </li><li>| <a href="#v:HdrContentMD5">HdrContentMD5</a> </li><li>| <a href="#v:HdrContentRange">HdrContentRange</a> </li><li>| <a href="#v:HdrContentType">HdrContentType</a> </li><li>| <a href="#v:HdrETag">HdrETag</a> </li><li>| <a href="#v:HdrExpires">HdrExpires</a> </li><li>| <a href="#v:HdrLastModified">HdrLastModified</a> </li><li>| <a href="#v:HdrContentTransferEncoding">HdrContentTransferEncoding</a> </li><li>| <a href="#v:HdrCustom">HdrCustom</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> </li></ul></li><li class="src short"><a href="#v:insertHeader">insertHeader</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderSetter">HeaderSetter</a> a</li><li class="src short"><a href="#v:insertHeaderIfMissing">insertHeaderIfMissing</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderSetter">HeaderSetter</a> a</li><li class="src short"><a href="#v:insertHeaders">insertHeaders</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => [<a href="Network-HTTP-Headers.html#t:Header">Header</a>] -> a -> a</li><li class="src short"><a href="#v:retrieveHeaders">retrieveHeaders</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> a -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>]</li><li class="src short"><a href="#v:replaceHeader">replaceHeader</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderSetter">HeaderSetter</a> a</li><li class="src short"><a href="#v:findHeader">findHeader</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li class="src short"><a href="#v:lookupHeader">lookupHeader</a> :: <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li class="src short"><a href="#v:parseHeader">parseHeader</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> <a href="Network-Stream.html#t:Result">Result</a> <a href="Network-HTTP-Headers.html#t:Header">Header</a></li><li class="src short"><a href="#v:parseHeaders">parseHeaders</a> :: [<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>] -> <a href="Network-Stream.html#t:Result">Result</a> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>]</li><li class="src short"><a href="#v:headerMap">headerMap</a> :: [(<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>, <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a>)]</li><li class="src short"><span class="keyword">type</span> <a href="#t:HeaderSetter">HeaderSetter</a> a = <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> a -> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:HasHeaders" class="def">HasHeaders</a> x <span class="keyword">where</span><a href="src/Network-HTTP-Headers.html#HasHeaders" class="link">Source</a></p><div class="doc"><p><code>HasHeaders</code> is a type class for types containing HTTP headers, allowing you to write overloaded header manipulation functions for both <code>Request</code> and <code>Response</code> data types, for instance. </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:getHeaders" class="def">getHeaders</a> :: x -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>]<a href="src/Network-HTTP-Headers.html#getHeaders" class="link">Source</a></p><p class="src"><a name="v:setHeaders" class="def">setHeaders</a> :: x -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>] -> x<a href="src/Network-HTTP-Headers.html#setHeaders" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:HasHeaders" class="caption collapser" onclick="toggleSection('i:HasHeaders')">Instances</p><div id="section.i:HasHeaders" class="show"><table><tr><td class="src"><a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> (<a href="Network-HTTP-Base.html#t:Response">Response</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> (<a href="Network-HTTP-Base.html#t:Request">Request</a> a)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Header" class="def">Header</a> <a href="src/Network-HTTP-Headers.html#Header" class="link">Source</a></p><div class="doc"><p>The <code>Header</code> data type pairs header names & values. </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Header" class="def">Header</a> <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Header" class="caption collapser" onclick="toggleSection('i:Header')">Instances</p><div id="section.i:Header" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Network-HTTP-Headers.html#t:Header">Header</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:mkHeader" class="def">mkHeader</a> :: <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> <a href="Network-HTTP-Headers.html#t:Header">Header</a><a href="src/Network-HTTP-Headers.html#mkHeader" class="link">Source</a></p><div class="doc"><p>Header constructor as a function, hiding above rep. </p></div></div><div class="top"><p class="src"><a name="v:hdrName" class="def">hdrName</a> :: <a href="Network-HTTP-Headers.html#t:Header">Header</a> -> <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a><a href="src/Network-HTTP-Headers.html#hdrName" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:hdrValue" class="def">hdrValue</a> :: <a href="Network-HTTP-Headers.html#t:Header">Header</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a><a href="src/Network-HTTP-Headers.html#hdrValue" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:HeaderName" class="def">HeaderName</a> <a href="src/Network-HTTP-Headers.html#HeaderName" class="link">Source</a></p><div class="doc"><p>HTTP <code>HeaderName</code> type, a Haskell data constructor for each specification-defined header, prefixed with <code>Hdr</code> and CamelCased, (i.e., eliding the <code>-</code> in the process.) Should you require using a custom header, there's the <code>HdrCustom</code> constructor which takes a <code>String</code> argument. </p><p>Encoding HTTP header names differently, as Strings perhaps, is an equally fine choice..no decidedly clear winner, but let's stick with data constructors here. </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HdrCacheControl" class="def">HdrCacheControl</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrConnection" class="def">HdrConnection</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrDate" class="def">HdrDate</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrPragma" class="def">HdrPragma</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrTransferEncoding" class="def">HdrTransferEncoding</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrUpgrade" class="def">HdrUpgrade</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrVia" class="def">HdrVia</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrAccept" class="def">HdrAccept</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrAcceptCharset" class="def">HdrAcceptCharset</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrAcceptEncoding" class="def">HdrAcceptEncoding</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrAcceptLanguage" class="def">HdrAcceptLanguage</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrAuthorization" class="def">HdrAuthorization</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrCookie" class="def">HdrCookie</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrExpect" class="def">HdrExpect</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrFrom" class="def">HdrFrom</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrHost" class="def">HdrHost</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrIfModifiedSince" class="def">HdrIfModifiedSince</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrIfMatch" class="def">HdrIfMatch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrIfNoneMatch" class="def">HdrIfNoneMatch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrIfRange" class="def">HdrIfRange</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrIfUnmodifiedSince" class="def">HdrIfUnmodifiedSince</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrMaxForwards" class="def">HdrMaxForwards</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrProxyAuthorization" class="def">HdrProxyAuthorization</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrRange" class="def">HdrRange</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrReferer" class="def">HdrReferer</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrUserAgent" class="def">HdrUserAgent</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrAge" class="def">HdrAge</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrLocation" class="def">HdrLocation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrProxyAuthenticate" class="def">HdrProxyAuthenticate</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrPublic" class="def">HdrPublic</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrRetryAfter" class="def">HdrRetryAfter</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrServer" class="def">HdrServer</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrSetCookie" class="def">HdrSetCookie</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrTE" class="def">HdrTE</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrTrailer" class="def">HdrTrailer</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrVary" class="def">HdrVary</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrWarning" class="def">HdrWarning</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrWWWAuthenticate" class="def">HdrWWWAuthenticate</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrAllow" class="def">HdrAllow</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentBase" class="def">HdrContentBase</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentEncoding" class="def">HdrContentEncoding</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentLanguage" class="def">HdrContentLanguage</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentLength" class="def">HdrContentLength</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentLocation" class="def">HdrContentLocation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentMD5" class="def">HdrContentMD5</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentRange" class="def">HdrContentRange</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentType" class="def">HdrContentType</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrETag" class="def">HdrETag</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrExpires" class="def">HdrExpires</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrLastModified" class="def">HdrLastModified</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HdrContentTransferEncoding" class="def">HdrContentTransferEncoding</a></td><td class="doc"><p>MIME entity headers (for sub-parts) </p></td></tr><tr><td class="src"><a name="v:HdrCustom" class="def">HdrCustom</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>Allows for unrecognised or experimental headers. </p></td></tr></table></div><div class="subs instances"><p id="control.i:HeaderName" class="caption collapser" onclick="toggleSection('i:HeaderName')">Instances</p><div id="section.i:HeaderName" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:insertHeader" class="def">insertHeader</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderSetter">HeaderSetter</a> a<a href="src/Network-HTTP-Headers.html#insertHeader" class="link">Source</a></p><div class="doc"><p><code>insertHeader hdr val x</code> inserts a header with the given header name and value. Does not check for existing headers with same name, allowing duplicates to be introduce (use <code><a href="Network-HTTP-Headers.html#v:replaceHeader">replaceHeader</a></code> if you want to avoid this.) </p></div></div><div class="top"><p class="src"><a name="v:insertHeaderIfMissing" class="def">insertHeaderIfMissing</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderSetter">HeaderSetter</a> a<a href="src/Network-HTTP-Headers.html#insertHeaderIfMissing" class="link">Source</a></p><div class="doc"><p><code>insertHeaderIfMissing hdr val x</code> adds the new header only if no previous header with name <code>hdr</code> exists in <code>x</code>. </p></div></div><div class="top"><p class="src"><a name="v:insertHeaders" class="def">insertHeaders</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => [<a href="Network-HTTP-Headers.html#t:Header">Header</a>] -> a -> a<a href="src/Network-HTTP-Headers.html#insertHeaders" class="link">Source</a></p><div class="doc"><p><code>insertHeaders hdrs x</code> appends multiple headers to <code>x</code>'s existing set. </p></div></div><div class="top"><p class="src"><a name="v:retrieveHeaders" class="def">retrieveHeaders</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> a -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>]<a href="src/Network-HTTP-Headers.html#retrieveHeaders" class="link">Source</a></p><div class="doc"><p><code>retrieveHeaders hdrNm x</code> gets a list of headers with <code><a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a></code> <code>hdrNm</code>. </p></div></div><div class="top"><p class="src"><a name="v:replaceHeader" class="def">replaceHeader</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderSetter">HeaderSetter</a> a<a href="src/Network-HTTP-Headers.html#replaceHeader" class="link">Source</a></p><div class="doc"><p><code>replaceHeader hdr val o</code> replaces the header <code>hdr</code> with the value <code>val</code>, dropping any existing </p></div></div><div class="top"><p class="src"><a name="v:findHeader" class="def">findHeader</a> :: <a href="Network-HTTP-Headers.html#t:HasHeaders">HasHeaders</a> a => <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a><a href="src/Network-HTTP-Headers.html#findHeader" class="link">Source</a></p><div class="doc"><p><code>findHeader hdrNm x</code> looks up <code>hdrNm</code> in <code>x</code>, returning the first header that matches, if any. </p></div></div><div class="top"><p class="src"><a name="v:lookupHeader" class="def">lookupHeader</a> :: <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a><a href="src/Network-HTTP-Headers.html#lookupHeader" class="link">Source</a></p><div class="doc"><p><code>lookupHeader hdr hdrs</code> locates the first header matching <code>hdr</code> in the list <code>hdrs</code>. </p></div></div><div class="top"><p class="src"><a name="v:parseHeader" class="def">parseHeader</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> <a href="Network-Stream.html#t:Result">Result</a> <a href="Network-HTTP-Headers.html#t:Header">Header</a><a href="src/Network-HTTP-Headers.html#parseHeader" class="link">Source</a></p><div class="doc"><p><code>parseHeader headerNameAndValueString</code> tries to unscramble a <code>header: value</code> pairing and returning it as a <code><a href="Network-HTTP-Headers.html#t:Header">Header</a></code>. </p></div></div><div class="top"><p class="src"><a name="v:parseHeaders" class="def">parseHeaders</a> :: [<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>] -> <a href="Network-Stream.html#t:Result">Result</a> [<a href="Network-HTTP-Headers.html#t:Header">Header</a>]<a href="src/Network-HTTP-Headers.html#parseHeaders" class="link">Source</a></p><div class="doc"><p><code>parseHeaders hdrs</code> takes a sequence of strings holding header information and parses them into a set of headers (preserving their order in the input argument.) Handles header values split up over multiple lines. </p></div></div><div class="top"><p class="src"><a name="v:headerMap" class="def">headerMap</a> :: [(<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>, <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a>)]<a href="src/Network-HTTP-Headers.html#headerMap" class="link">Source</a></p><div class="doc"><p><code>headerMap</code> is a straight assoc list for translating between header names and values. </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:HeaderSetter" class="def">HeaderSetter</a> a = <a href="Network-HTTP-Headers.html#t:HeaderName">HeaderName</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> a -> a<a href="src/Network-HTTP-Headers.html#HeaderSetter" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>