#include <network_webserver.h>
Interface to access more high level functions to read/send data with http connections. This functions are used by the web server to read and send data.
公共成员函数 |
|
MAXON_METHOD Result < void > | OpenConnection (const String &address, const ThreadRef &thread, TimeValue connectionTimeOut, TimeValue sessiontimeOut) |
MAXON_METHOD String | GetMimeType (const Url &file) const |
MAXON_METHOD Result < CString > | CreateRequestHeader ( HTTPMETHOD method, const UrlScheme &proxyScheme, Bool allowGzip, const String &hostName, const String &fileName, const String &queryParameter, const Range < Int64 > &range, const DataDictionary &optionalTags=DataDictionary(), const Block < const Char > &postData= Block < const Char >()) const |
MAXON_METHOD CString | CreateAnswerHeader (const String &mime, Int64 size, HTTPCODE code= HTTPCODE::OK , Int refresh=-1, const UniversalDateTime &expires= UniversalDateTime ()) const |
MAXON_METHOD Result < DataDictionary > | ReadRequest () |
MAXON_METHOD Result < DataDictionary > | ReadAnswer () |
MAXON_METHOD Result < void > | SendHtmlFile (const Url &path, Bool usemime, Bool del=false, const UniversalDateTime &expires= UniversalDateTime ()) |
MAXON_METHOD Result < void > | SendRedirect (const String &location) |
MAXON_METHOD Result < void > | HandleGet (const Url &basePath, const DataDictionary &request) |
MAXON_METHOD Result < DataDictionary > | HandlePost (const DataDictionary &request, const Url &upload) |
MAXON_METHOD Result < void > | LoadHtmlFile (const Url &file, String &html) |
MAXON_METHOD Result < void > | SubstInHtml ( String &html, const DataDictionary &data) |
MAXON_METHOD Result < void > | LssHtmlFile (const Url &file, const DataDictionary &data, HTTPCODE code= HTTPCODE::OK , Int refresh=-1) |
MAXON_METHOD String | KillPercentChar (const String &name) |
MAXON_METHOD Result < void > | DoIt () |
私有成员函数 |
|
MAXON_INTERFACE ( NetworkHttpHandlerInterface , MAXON_REFERENCE_NORMAL , "net.maxon.interface.networkhttphandler") |
|
private |
MAXON_METHOD Result <void> OpenConnection | ( | const String & | address , |
const ThreadRef & | thread , | ||
TimeValue | connectionTimeOut , | ||
TimeValue | sessiontimeOut | ||
) |
Opens an outgoing http connection.
[in] | address | Connection address e.g. "127.0.0.1:80" or "www.maxon.de:8080". |
[in] | thread | Reference to the handling thread. this thread is checked for the is cancelled state. |
[in] | connectionTimeOut | Timeout during the first connect. |
[in] | sessiontimeOut | Timeout for the session in seconds. if SOCKETTIMEOUT_INDEFINITELY is used a thread is needed. |
MAXON_METHOD String GetMimeType | ( | const Url & | file | ) | const |
Determines the mine type depending of the file.
[in] | file | File name of the file which type should be determined. |
MAXON_METHOD Result < CString > CreateRequestHeader | ( | HTTPMETHOD | method , |
const UrlScheme & | proxyScheme , | ||
Bool | allowGzip , | ||
const String & | hostName , | ||
const String & | fileName , | ||
const String & | queryParameter , | ||
const Range < Int64 > & | range , | ||
const DataDictionary & |
optionalTags
=
DataDictionary()
,
|
||
const Block < const Char > & |
postData
=
Block< const Char >()
|
||
) | const |
Creates an http request header for a server. The default values for the header are: -"Host: <<hostName without port>>". -"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8". -"User-Agent: Maxon Computer GmbH". -"Accept-Encoding: gzip" if range is empty. -"Content-Type: application/x-www-form-urlencoded" if isPost is true. -"Content-Length: <<postData.GetCount()>>" if isPost is true.
[in] | method | HTTP method. |
[in] | proxyScheme | An empty Id if this is not a proxy request. Otherwise the scheme (e.g. "http") of the request. In that case the "<<scheme>>://<<hostName>>" and "Proxy-Connection: keep-alive" will be added to the request. |
[in] | allowGzip | True if the request allows gzip compression. |
[in] | hostName | Host name with the port. In case of a proxy this name will be added to the request (e.g. "www.maxon.de:80"). This name without the port will be added to the "Host:" field. |
[in] | fileName | The path of the request. E.g. "/file/index.html". This name must start with a '/'. |
[in] | queryParameter | Query parameter for the request. Usually they will be concatenated with a '?' to the fileName. |
[in] | range | If range is not empty the request will add a "Range: bytes=@-" if maxRange is LIMIT<Int64>::MAX or "Range: bytes=@-@" otherwise. |
[in] | optionalTags | Optional parameter, if given each entry in the dictionary will be added to the request in the form: "key: value\r\n". |
[in] | postData | Optional parameter, if given this contains the block of data for the post request added to the post. |
MAXON_METHOD CString CreateAnswerHeader | ( | const String & | mime , |
Int64 | size , | ||
HTTPCODE |
code
=
HTTPCODE::OK
,
|
||
Int |
refresh
=
-1
,
|
||
const UniversalDateTime & |
expires
=
UniversalDateTime()
|
||
) | const |
Creates an http answer header for a given mime type.
[in] | mime | Mime type of the data to be send. If not IsEmpty() the "content-type" field will be created. |
[in] | size | Size of the data to be send. If not 0 the "content-length" field will be created. |
[in] | code | Code the is used for the http header code. "HTTP/1.0 <<_code_>>" is generated. |
[in] | refresh | If > 0 the "refresh" field will be created. This forces the browser to reload the site every refresh seconds. |
[in] | expires | Defines the date when this object has to be reloaded. Use DateTime() to disable caching. |
MAXON_METHOD Result <DataDictionary> ReadRequest | ( | ) |
MAXON_METHOD Result <DataDictionary> ReadAnswer | ( | ) |
MAXON_METHOD Result <void> SendHtmlFile | ( | const Url & | path , |
Bool | usemime , | ||
Bool |
del
=
false
,
|
||
const UniversalDateTime & |
expires
=
UniversalDateTime()
|
||
) |
MAXON_METHOD Result <void> SendRedirect | ( | const String & | location | ) |
MAXON_METHOD Result <void> HandleGet | ( | const Url & | basePath , |
const DataDictionary & | request | ||
) |
MAXON_METHOD Result <DataDictionary> HandlePost | ( | const DataDictionary & | request , |
const Url & | upload | ||
) |
MAXON_METHOD Result <void> LoadHtmlFile | ( | const Url & | file , |
String & | html | ||
) |
MAXON_METHOD Result <void> SubstInHtml | ( | String & | html , |
const DataDictionary & | data | ||
) |
MAXON_METHOD Result <void> LssHtmlFile | ( | const Url & | file , |
const DataDictionary & | data , | ||
HTTPCODE |
code
=
HTTPCODE::OK
,
|
||
Int |
refresh
=
-1
|
||
) |
MAXON_METHOD String KillPercentChar | ( | const String & | name | ) |
MAXON_METHOD Result <void> DoIt | ( | ) |