gi-soup-2.4.2: Libsoup bindings

CopyrightWill Thompson, Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.Soup.Structs.URI

Contents

Description

A SoupURI supports RFC 3986 (URI Generic Syntax), and can parse any valid URI. However, libsoup only uses "http" and "https" URIs internally; You can use SOUP_URI_VALID_FOR_HTTP() to test if a #SoupURI is a valid HTTP URI.

scheme will always be set in any URI. It is an interned string and is always all lowercase. (If you parse a URI with a non-lowercase scheme, it will be converted to lowercase.) The macros %SOUP_URI_SCHEME_HTTP and %SOUP_URI_SCHEME_HTTPS provide the interned values for "http" and "https" and can be compared against URI scheme values.

user and password are parsed as defined in the older URI specs (ie, separated by a colon; RFC 3986 only talks about a single "userinfo" field). Note that @password is not included in the output of soup_uri_to_string(). libsoup does not normally use these fields; authentication is handled via #SoupSession signals.

host contains the hostname, and port the port specified in the URI. If the URI doesn't contain a hostname, host will be %NULL, and if it doesn't specify a port, port may be 0. However, for "http" and "https" URIs, host is guaranteed to be non-%NULL (trying to parse an http URI with no host will return %NULL), and @port will always be non-0 (because libsoup knows the default value to use when it is not specified in the URI).

path is always non-%NULL. For http/https URIs, path will never be an empty string either; if the input URI has no path, the parsed #SoupURI will have a @path of "/".

query and fragment are optional for all URI types. soup_form_decode() may be useful for parsing @query.

Note that path, query, and fragment may contain %---encoded characters. soup_uri_new() calls soup_uri_normalize() on them, but not soup_uri_decode(). This is necessary to ensure that soup_uri_to_string() will generate a URI that has exactly the same meaning as the original. (In theory, #SoupURI should leave user, password, and host partially-encoded as well, but this would be more annoying than useful.)

Synopsis

Exported types

newtype URI Source

Constructors

URI (ForeignPtr URI) 

Instances

BoxedObject URI Source 
(~) AttrOpTag tag AttrSet => Constructible URI tag Source 
((~) * signature (m Bool), MonadIO m) => MethodInfo * URIUsesDefaultPortMethodInfo URI signature Source 
((~) * signature (Bool -> m Text), MonadIO m) => MethodInfo * URIToStringMethodInfo URI signature Source 
((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetUserMethodInfo URI signature Source 
((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * URISetSchemeMethodInfo URI signature Source 
((~) * signature (Map Text Text -> m ()), MonadIO m) => MethodInfo * URISetQueryFromFormMethodInfo URI signature Source 
((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetQueryMethodInfo URI signature Source 
((~) * signature (Word32 -> m ()), MonadIO m) => MethodInfo * URISetPortMethodInfo URI signature Source 
((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * URISetPathMethodInfo URI signature Source 
((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetPasswordMethodInfo URI signature Source 
((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetHostMethodInfo URI signature Source 
((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetFragmentMethodInfo URI signature Source 
((~) * signature (Text -> m URI), MonadIO m) => MethodInfo * URINewWithBaseMethodInfo URI signature Source 
((~) * signature (m Word32), MonadIO m) => MethodInfo * URIHostHashMethodInfo URI signature Source 
((~) * signature (URI -> m Bool), MonadIO m) => MethodInfo * URIHostEqualMethodInfo URI signature Source 
((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetUserMethodInfo URI signature Source 
((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetSchemeMethodInfo URI signature Source 
((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetQueryMethodInfo URI signature Source 
((~) * signature (m Word32), MonadIO m) => MethodInfo * URIGetPortMethodInfo URI signature Source 
((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetPathMethodInfo URI signature Source 
((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetPasswordMethodInfo URI signature Source 
((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetHostMethodInfo URI signature Source 
((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetFragmentMethodInfo URI signature Source 
((~) * signature (m ()), MonadIO m) => MethodInfo * URIFreeMethodInfo URI signature Source 
((~) * signature (URI -> m Bool), MonadIO m) => MethodInfo * URIEqualMethodInfo URI signature Source 
((~) * signature (m URI), MonadIO m) => MethodInfo * URICopyHostMethodInfo URI signature Source 
((~) * signature (m URI), MonadIO m) => MethodInfo * URICopyMethodInfo URI signature Source 
((~) * info (ResolveURIMethod t URI), MethodInfo * info URI p) => IsLabelProxy t (URI -> p) Source 
type AttributeList URI Source 

newZeroURI :: MonadIO m => m URI Source

Construct a URI struct initialized to zero.

Methods

uRICopy

data URICopyMethodInfo Source

Instances

((~) * signature (m URI), MonadIO m) => MethodInfo * URICopyMethodInfo URI signature Source 

uRICopyHost

data URICopyHostMethodInfo Source

Instances

((~) * signature (m URI), MonadIO m) => MethodInfo * URICopyHostMethodInfo URI signature Source 

uRIDecode

uRIEncode

uRIEqual

data URIEqualMethodInfo Source

Instances

((~) * signature (URI -> m Bool), MonadIO m) => MethodInfo * URIEqualMethodInfo URI signature Source 

uRIEqual :: MonadIO m => URI -> URI -> m Bool Source

uRIFree

data URIFreeMethodInfo Source

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * URIFreeMethodInfo URI signature Source 

uRIFree :: MonadIO m => URI -> m () Source

uRIGetFragment

data URIGetFragmentMethodInfo Source

Instances

((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetFragmentMethodInfo URI signature Source 

uRIGetHost

data URIGetHostMethodInfo Source

Instances

((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetHostMethodInfo URI signature Source 

uRIGetPassword

data URIGetPasswordMethodInfo Source

Instances

((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetPasswordMethodInfo URI signature Source 

uRIGetPath

data URIGetPathMethodInfo Source

Instances

((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetPathMethodInfo URI signature Source 

uRIGetPort

data URIGetPortMethodInfo Source

Instances

((~) * signature (m Word32), MonadIO m) => MethodInfo * URIGetPortMethodInfo URI signature Source 

uRIGetQuery

data URIGetQueryMethodInfo Source

Instances

((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetQueryMethodInfo URI signature Source 

uRIGetScheme

data URIGetSchemeMethodInfo Source

Instances

((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetSchemeMethodInfo URI signature Source 

uRIGetUser

data URIGetUserMethodInfo Source

Instances

((~) * signature (m Text), MonadIO m) => MethodInfo * URIGetUserMethodInfo URI signature Source 

uRIHostEqual

data URIHostEqualMethodInfo Source

Instances

((~) * signature (URI -> m Bool), MonadIO m) => MethodInfo * URIHostEqualMethodInfo URI signature Source 

uRIHostHash

data URIHostHashMethodInfo Source

Instances

((~) * signature (m Word32), MonadIO m) => MethodInfo * URIHostHashMethodInfo URI signature Source 

uRINew

uRINewWithBase

data URINewWithBaseMethodInfo Source

Instances

((~) * signature (Text -> m URI), MonadIO m) => MethodInfo * URINewWithBaseMethodInfo URI signature Source 

uRINormalize

uRISetFragment

data URISetFragmentMethodInfo Source

Instances

((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetFragmentMethodInfo URI signature Source 

uRISetHost

data URISetHostMethodInfo Source

Instances

((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetHostMethodInfo URI signature Source 

uRISetHost :: MonadIO m => URI -> Maybe Text -> m () Source

uRISetPassword

data URISetPasswordMethodInfo Source

Instances

((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetPasswordMethodInfo URI signature Source 

uRISetPath

data URISetPathMethodInfo Source

Instances

((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * URISetPathMethodInfo URI signature Source 

uRISetPath :: MonadIO m => URI -> Text -> m () Source

uRISetPort

data URISetPortMethodInfo Source

Instances

((~) * signature (Word32 -> m ()), MonadIO m) => MethodInfo * URISetPortMethodInfo URI signature Source 

uRISetPort :: MonadIO m => URI -> Word32 -> m () Source

uRISetQuery

data URISetQueryMethodInfo Source

Instances

((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetQueryMethodInfo URI signature Source 

uRISetQuery :: MonadIO m => URI -> Maybe Text -> m () Source

uRISetQueryFromForm

data URISetQueryFromFormMethodInfo Source

Instances

((~) * signature (Map Text Text -> m ()), MonadIO m) => MethodInfo * URISetQueryFromFormMethodInfo URI signature Source 

uRISetScheme

data URISetSchemeMethodInfo Source

Instances

((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * URISetSchemeMethodInfo URI signature Source 

uRISetScheme :: MonadIO m => URI -> Text -> m () Source

uRISetUser

data URISetUserMethodInfo Source

Instances

((~) * signature (Maybe Text -> m ()), MonadIO m) => MethodInfo * URISetUserMethodInfo URI signature Source 

uRISetUser :: MonadIO m => URI -> Maybe Text -> m () Source

uRIToString

data URIToStringMethodInfo Source

Instances

((~) * signature (Bool -> m Text), MonadIO m) => MethodInfo * URIToStringMethodInfo URI signature Source 

uRIUsesDefaultPort

data URIUsesDefaultPortMethodInfo Source

Instances

((~) * signature (m Bool), MonadIO m) => MethodInfo * URIUsesDefaultPortMethodInfo URI signature Source 

Properties

Fragment

Host

uRIClearHost :: MonadIO m => URI -> m () Source

Password

Path

uRIClearPath :: MonadIO m => URI -> m () Source

Port

uRIWritePort :: MonadIO m => URI -> Word32 -> m () Source

Query

Scheme

User

uRIClearUser :: MonadIO m => URI -> m () Source