NetworkHttpHandlerInterface Class Reference

#include <network_webserver.h>

Inheritance diagram for NetworkHttpHandlerInterface:

详细描述

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")

成员函数文档编制

◆  MAXON_INTERFACE()

MAXON_INTERFACE ( NetworkHttpHandlerInterface   ,
MAXON_REFERENCE_NORMAL   ,
"net.maxon.interface.networkhttphandler"   
)
private

◆  OpenConnection()

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.
返回
True if the connection could be opened.

◆  GetMimeType()

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.
返回
Mime type. E.g. "image/jpg".

◆  CreateRequestHeader()

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.
返回
The string with a valid http request header.

◆  CreateAnswerHeader()

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.
返回
The string with a valid http header.

◆  ReadRequest()

MAXON_METHOD Result <DataDictionary> ReadRequest ( )

◆  ReadAnswer()

MAXON_METHOD Result <DataDictionary> ReadAnswer ( )

◆  SendHtmlFile()

MAXON_METHOD Result <void> SendHtmlFile ( const Url path ,
Bool   usemime ,
Bool   del = false ,
const UniversalDateTime expires = UniversalDateTime()  
)

◆  SendRedirect()

MAXON_METHOD Result <void> SendRedirect ( const String location )

◆  HandleGet()

MAXON_METHOD Result <void> HandleGet ( const Url basePath ,
const DataDictionary &  request  
)

◆  HandlePost()

MAXON_METHOD Result <DataDictionary> HandlePost ( const DataDictionary &  request ,
const Url upload  
)

◆  LoadHtmlFile()

MAXON_METHOD Result <void> LoadHtmlFile ( const Url file ,
String html  
)

◆  SubstInHtml()

MAXON_METHOD Result <void> SubstInHtml ( String html ,
const DataDictionary &  data  
)

◆  LssHtmlFile()

MAXON_METHOD Result <void> LssHtmlFile ( const Url file ,
const DataDictionary &  data ,
HTTPCODE   code = HTTPCODE::OK ,
Int   refresh = -1  
)

◆  KillPercentChar()

MAXON_METHOD String KillPercentChar ( const String name )

◆  DoIt()

MAXON_METHOD Result <void> DoIt ( )