gi-soup-0.2.52.13: Soup 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 

Methods

boxedType :: URI -> IO GType

((~) * info (ResolveURIMethod t URI), MethodInfo * info URI p) => IsLabel t (URI -> p) Source 

Methods

fromLabel :: Proxy# Symbol t -> URI -> p

((~) * info (ResolveURIMethod t URI), MethodInfo * info URI p) => IsLabelProxy t (URI -> p) Source 

Methods

fromLabelProxy :: Proxy Symbol t -> URI -> p

((~) (TYPE Lifted) signature (m Bool), MonadIO m) => MethodInfo (TYPE Lifted) URIUsesDefaultPortMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Bool -> m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIToStringMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Maybe Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetUserMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetSchemeMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Map Text Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetQueryFromFormMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Maybe Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetQueryMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Word32 -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetPortMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetPathMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Maybe Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetPasswordMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Maybe Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetHostMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Maybe Text -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) URISetFragmentMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (Text -> m URI), MonadIO m) => MethodInfo (TYPE Lifted) URINewWithBaseMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Word32), MonadIO m) => MethodInfo (TYPE Lifted) URIHostHashMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (URI -> m Bool), MonadIO m) => MethodInfo (TYPE Lifted) URIHostEqualMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIGetUserMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIGetSchemeMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIGetQueryMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Word32), MonadIO m) => MethodInfo (TYPE Lifted) URIGetPortMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIGetPathMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIGetPasswordMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIGetHostMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) URIGetFragmentMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m ()), MonadIO m) => MethodInfo (TYPE Lifted) URIFreeMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (URI -> m Bool), MonadIO m) => MethodInfo (TYPE Lifted) URIEqualMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m URI), MonadIO m) => MethodInfo (TYPE Lifted) URICopyHostMethodInfo URI signature Source 
((~) (TYPE Lifted) signature (m URI), MonadIO m) => MethodInfo (TYPE Lifted) URICopyMethodInfo URI signature Source 

newZeroURI :: MonadIO m => m URI Source

Construct a URI struct initialized to zero.

Methods

uRICopy

data URICopyMethodInfo Source

Instances

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

uRICopyHost

uRIDecode

uRIEncode

uRIEqual

data URIEqualMethodInfo Source

Instances

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

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

uRIFree

data URIFreeMethodInfo Source

Instances

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

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

uRIGetFragment

uRIGetHost

data URIGetHostMethodInfo Source

Instances

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

uRIGetPassword

uRIGetPath

data URIGetPathMethodInfo Source

Instances

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

uRIGetPort

uRIGetQuery

uRIGetScheme

uRIGetUser

data URIGetUserMethodInfo Source

Instances

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

uRIHostEqual

uRIHostHash

uRINew

uRINewWithBase

uRINormalize

uRISetFragment

uRISetHost

data URISetHostMethodInfo Source

Instances

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

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

uRISetPassword

uRISetPath

data URISetPathMethodInfo Source

Instances

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

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

uRISetPort

data URISetPortMethodInfo Source

Instances

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

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

uRISetQuery

data URISetQueryMethodInfo Source

Instances

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

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

uRISetQueryFromForm

uRISetScheme

data URISetSchemeMethodInfo Source

Instances

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

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

uRISetUser

data URISetUserMethodInfo Source

Instances

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

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

uRIToString

data URIToStringMethodInfo Source

Instances

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

uRIUsesDefaultPort

Properties

Fragment

Host

Password

Path

Port

Query

Scheme

User