curl-1.3.5: Haskell binding to libcurlSource codeContentsIndex
Network.Curl
Portabilityportable
Stabilityprovisional
MaintainerSigbjorn Finne <sof@galois.com>
Description

A Haskell binding the libcurl library http://curl.haxx.se/, a proven and feature-rich library for interacting with HTTP(S)/FTP servers.

The binding was initially made against version 7.16.2; libcurl does appear to be considerate in not introducing breaking changes wrt older versions. So, unless you're after the latest features (i.e., constructors towards the end the Option type), there's a very good chance your code will work against older installations of libcurl.

Synopsis
module Network.Curl.Opts
module Network.Curl.Easy
module Network.Curl.Post
module Network.Curl.Info
module Network.Curl.Types
module Network.Curl.Code
withCurlDo :: IO a -> IO a
setopts :: Curl -> [CurlOption] -> IO ()
data CurlResponse_ headerTy bodyTy = CurlResponse {
respCurlCode :: CurlCode
respStatus :: Int
respStatusLine :: String
respHeaders :: headerTy
respBody :: bodyTy
respGetInfo :: Info -> IO InfoValue
}
type CurlResponse = CurlResponse_ [(String, String)] String
curlGet :: URLString -> [CurlOption] -> IO ()
curlGetString :: URLString -> [CurlOption] -> IO (CurlCode, String)
curlGetResponse :: URLString -> [CurlOption] -> IO CurlResponse
perform_with_response :: (CurlHeader hdrTy, CurlBuffer bufTy) => Curl -> IO (CurlResponse_ hdrTy bufTy)
do_curl :: Curl -> URLString -> [CurlOption] -> IO CurlResponse
curlGetString_ :: CurlBuffer ty => URLString -> [CurlOption] -> IO (CurlCode, ty)
curlGetResponse_ :: (CurlHeader hdr, CurlBuffer ty) => URLString -> [CurlOption] -> IO (CurlResponse_ hdr ty)
perform_with_response_ :: (CurlHeader headerTy, CurlBuffer bodyTy) => Curl -> IO (CurlResponse_ headerTy bodyTy)
do_curl_ :: (CurlHeader headerTy, CurlBuffer bodyTy) => Curl -> URLString -> [CurlOption] -> IO (CurlResponse_ headerTy bodyTy)
curlHead_ :: CurlHeader headers => URLString -> [CurlOption] -> IO (String, headers)
curlHead :: URLString -> [CurlOption] -> IO (String, [(String, String)])
curlMultiPost :: URLString -> [CurlOption] -> [HttpPost] -> IO ()
curlPost :: URLString -> [String] -> IO ()
getResponseCode :: Curl -> IO Int
setDefaultSSLOpts :: Curl -> URLString -> IO ()
callbackWriter :: (String -> IO ()) -> WriteFunction
easyWriter :: (String -> IO ()) -> WriteFunction
ignoreOutput :: WriteFunction
gatherOutput :: IORef [String] -> WriteFunction
gatherOutput_ :: (CStringLen -> IO ()) -> WriteFunction
class CurlBuffer bufferTy where
newIncoming :: IO (IO bufferTy, CStringLen -> IO ())
class CurlHeader headerTy where
newIncomingHeader :: IO (IO (String, headerTy), CStringLen -> IO ())
method_GET :: [CurlOption]
method_HEAD :: [CurlOption]
method_POST :: [CurlOption]
parseStatusNHeaders :: String -> (String, [(String, String)])
parseHeader :: String -> (String, String)
concRev :: [a] -> [[a]] -> [a]
Documentation
module Network.Curl.Opts
module Network.Curl.Easy
module Network.Curl.Post
module Network.Curl.Info
module Network.Curl.Types
module Network.Curl.Code
withCurlDo :: IO a -> IO aSource
Should be used once to wrap all uses of libcurl. WARNING: the argument should not return before it is completely done with curl (e.g., no forking or lazy returns)
setopts :: Curl -> [CurlOption] -> IO ()Source
Set a list of options on a Curl handle.
data CurlResponse_ headerTy bodyTy Source
CurlResponse_ is a record type encoding all the information embodied in a response to your Curl request. Currently only used to gather up the results of doing a GET in curlGetResponse.
Constructors
CurlResponse
respCurlCode :: CurlCode
respStatus :: Int
respStatusLine :: String
respHeaders :: headerTy
respBody :: bodyTy
respGetInfo :: Info -> IO InfoValue
type CurlResponse = CurlResponse_ [(String, String)] StringSource
curlGet :: URLString -> [CurlOption] -> IO ()Source
curlGet perform a basic GET, dumping the output on stdout. The list of options are set prior performing the GET request.
curlGetString :: URLString -> [CurlOption] -> IO (CurlCode, String)Source
curlGetString performs the same request as curlGet, but returns the response body as a Haskell string.
curlGetResponse :: URLString -> [CurlOption] -> IO CurlResponseSource
perform_with_response :: (CurlHeader hdrTy, CurlBuffer bufTy) => Curl -> IO (CurlResponse_ hdrTy bufTy)Source
Perform the actions already specified on the handle. Collects useful information about the returned message. Note that this function sets the CurlWriteFunction and CurlHeaderFunction options.
do_curl :: Curl -> URLString -> [CurlOption] -> IO CurlResponseSource
Performs a curl request using an exisitng curl handle. The provided URL will overwride any CurlURL options that are provided in the list of options. See also: perform_with_response.
curlGetString_ :: CurlBuffer ty => URLString -> [CurlOption] -> IO (CurlCode, ty)Source
curlGetResponse_ :: (CurlHeader hdr, CurlBuffer ty) => URLString -> [CurlOption] -> IO (CurlResponse_ hdr ty)Source
curlGetResponse url opts performs a GET, returning all the info it can lay its hands on in the response, a value of type CurlResponse. The representation of the body is overloaded
perform_with_response_ :: (CurlHeader headerTy, CurlBuffer bodyTy) => Curl -> IO (CurlResponse_ headerTy bodyTy)Source
Perform the actions already specified on the handle. Collects useful information about the returned message. Note that this function sets the CurlWriteFunction and CurlHeaderFunction options. The returned payload is overloaded over the representation of both headers and body via the CurlResponse_ type.
do_curl_ :: (CurlHeader headerTy, CurlBuffer bodyTy) => Curl -> URLString -> [CurlOption] -> IO (CurlResponse_ headerTy bodyTy)Source
curlHead_ :: CurlHeader headers => URLString -> [CurlOption] -> IO (String, headers)Source
Get the headers associated with a particular URL. Returns the status line and the key-value pairs for the headers.
curlHead :: URLString -> [CurlOption] -> IO (String, [(String, String)])Source
Get the headers associated with a particular URL. Returns the status line and the key-value pairs for the headers.
curlMultiPost :: URLString -> [CurlOption] -> [HttpPost] -> IO ()Source
curlMultiPost perform a multi-part POST submission.
curlPost :: URLString -> [String] -> IO ()Source
curlPost performs. a common POST operation, namely that of submitting a sequence of name=value pairs.
getResponseCode :: Curl -> IO IntSource
setDefaultSSLOpts :: Curl -> URLString -> IO ()Source
callbackWriter :: (String -> IO ()) -> WriteFunctionSource
Imports data into the Haskell world and invokes the callback.
easyWriter :: (String -> IO ()) -> WriteFunctionSource
ignoreOutput :: WriteFunctionSource
The output of Curl is ignored. This function does not marshall data into Haskell.
gatherOutput :: IORef [String] -> WriteFunctionSource
Add chunks of data to an IORef as they arrive.
gatherOutput_ :: (CStringLen -> IO ()) -> WriteFunctionSource
Add chunks of data to an IORef as they arrive.
class CurlBuffer bufferTy whereSource
The CurlBuffer class encodes the representation of response buffers, allowing you to provide your own app-specific buffer reps to be used..or use one of the standard instances (String and ByteStrings.)
Methods
newIncoming :: IO (IO bufferTy, CStringLen -> IO ())Source
show/hide Instances
class CurlHeader headerTy whereSource
The CurlHeader class encodes the representation of response headers. Similar to CurlBuffer.
Methods
newIncomingHeader :: IO (IO (String, headerTy), CStringLen -> IO ())Source
show/hide Instances
method_GET :: [CurlOption]Source
method_HEAD :: [CurlOption]Source
method_POST :: [CurlOption]Source
parseStatusNHeaders :: String -> (String, [(String, String)])Source
parseHeader :: String -> (String, String)Source
concRev :: [a] -> [[a]] -> [a]Source
Produced by Haddock version 2.4.2