ZFFramework
Loading...
Searching...
No Matches
ZFHttpRequest Class Reference

http request util More...

#include <ZFHttpRequest.h>

Inheritance diagram for ZFHttpRequest:
ZFObject ZFTaskId ZFInterface

Public Types

enum  
Public Types inherited from ZFObject
enum  

Public Member Functions

virtual const ZFClassclassData (void)
 get instance's class info
virtual zftimettimeout ()
 timeout
virtual void timeout (zftimet const &propertyValue)
 see timeout
virtual zfstringurl ()
 the request url
virtual void url (zfstring const &propertyValue)
 see url
virtual ZFHttpMethodhttpMethod ()
 the http method, GET/POST/..., GET by default
virtual void httpMethod (ZFHttpMethod const &propertyValue)
 see httpMethod
virtual void header (const zfstring &key, const zfstring &value)
 set http header
virtual void headerRemove (const zfstring &key)
 remove http header
virtual zfstring header (const zfstring &key)
 get http header
virtual zfindex headerCount ()
 response header count
virtual zfiter headerIter ()
 iterator for header
virtual zfstring headerIterKey (const zfiter &it)
 iterator for header
virtual zfstring headerIterValue (const zfiter &it)
 iterator for header
virtual void headerIterValue (zfiter &it, const zfstring &value)
 iterator for header
virtual void headerIterRemove (zfiter &it)
 iterator for header
virtual void body (const zfstring &buf)
 append content to body
virtual void body (const void *buf, zfindex count)
 append content to body
virtual zfstring body ()
 return current body contents
virtual void start (const ZFListener &callback=(zft_zfnull))
 start the request
virtual void stop ()
 cancel the request
virtual zfautoT< ZFHttpResponsestartSync (zftimet timeout=(((zftimet) -1)))
 util to perform sync request, return null if timeout
virtual zfstring headerInfo ()
 print all header info, usually for debug use only
virtual zfstring contentInfo ()
 print all content info, usually for debug use only
Public Member Functions inherited from ZFObject
const ZFClassclassDynamic (void)
 dynamic class of this object, see ZFClassDynamicRegister
zfindex objectRetainCount (void)
 return the object's retain count
void objectInfoOfInstanceT (zfstring &ret)
 see objectInfoOfInstance
zfstring objectInfoOfInstance (void)
 return a short string describe the object instance
void objectInfoT (zfstring &ret)
 see objectInfo
zfstring objectInfo (void)
 return object info
zfidentity objectHash (void)
 get hash of this object
ZFCompareResult objectCompare (ZFObject *anotherObj)
 compare with anotherObj
ZFCompareResult objectCompareValue (ZFObject *anotherObj)
 explicitly compare object by logical value, see objectCompare
virtual zfauto invoke (const zfstring &methodName)
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfauto invoke (const zfstring &methodName, ZFObject *param0, ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF))
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfbool invokeT (zfauto &ret, zfstring *errorHint, const zfstring &methodName, ZFObject *param0=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF))
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfauto invokeDetail (const zfstring &methodName, const ZFCoreArray< zfauto > &params, zfbool *success=zft_zfnull, zfstring *errorHint=zft_zfnull)
 util method to perform ZFDI_invoke, do nothing if fail
zfbool objectTagExist (void)
 see objectTag, true if this object has tag, and tag can be checked by objectTagGetAllKeyValue
void objectTag (const zfstring &key, ZFObject *tag)
 used to hold a object for app's use, auto retained
zfany objectTag (const zfstring &key)
 see objectTag
void objectTagGetAllKeyValue (ZFCoreArray< zfstring > &allKey, ZFCoreArray< zfauto > &allValue)
 get all key value
void objectTagRemove (const zfstring &key)
 remove tag, same as set tag to null
zfauto objectTagRemoveAndGet (const zfstring &key)
 remove tag, return removed tag or null if not exist
void objectTagRemoveAll (void)
 remove all tag
void observerAdd (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 see observerNotify
void observerAddForOnce (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 see observerNotify
void observerRemove (zfidentity eventId, const ZFListener &callback)
 see observerNotify
void observerRemoveAll (zfidentity eventId)
 see observerNotify
void observerRemoveAll (void)
 see observerNotify
zfbool observerHasAdd (void)
 true if any observer has been added
zfbool observerHasAdd (zfidentity eventId)
 true if any observer with eventId has been added
void observerNotify (zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 notify the observer with eventId
void observerNotifyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
void observerNotifyReversely (zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
void observerNotifyReverselyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
ZFObserverobserverHolder (void)
 access the internal observer holder
void on (const zfstring &eventName, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 util to observerAdd
void on (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 util to observerAdd
void onInit (const ZFListener &impl)
 util for script to achieve chained call
void onDealloc (const ZFListener &impl)
 util for script to achieve chained call
zfbool objectInstanceStateCheck (ZFObjectInstanceState state)
 object instance's state
zfbool objectInitRunning (void)
 util method to check whether ZFObjectInstanceStateOnInit or ZFObjectInstanceStateOnInitFinish running
zfbool objectDeallocRunning (void)
 util method to check whether ZFObjectInstanceStateOnDeallocPrepare or ZFObjectInstanceStateOnDealloc running
virtual zfbool objectIsInternal (void)
 whether this object is internal object or its class is ZFClass::classIsInternal
virtual zfbool objectIsInternalPrivate (void)
 whether this object is internal private object or its class is ZFClass::classIsInternalPrivate
Public Member Functions inherited from ZFInterface
virtual ZFObjecttoObject (void)=0
 convert to ZFObject type

Static Public Member Functions

static const ZFClassClassData (void)
 get class info
static zfidentity E_OnRequestPrepare (void)
 called before request
static zfidentity E_OnRequest (void)
 called after request
static zfidentity E_OnResponsePrepare (void)
 called when any response received or timeout, before E_OnResponse and impl callback
static zfidentity E_OnResponse (void)
 called when any response received or timeout
static zfbool httpsAvailable ()
 whether https impl available
Static Public Member Functions inherited from ZFObject
static const ZFClassClassData (void)
 get class info
static zfidentity E_ObjectBeforeAlloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectAfterAlloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectBeforeDealloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectPropertyValueOnUpdate (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectPropertyValueOnReset (void)
 see ZFObject::observerNotify
Static Public Member Functions inherited from ZFTaskId
static const ZFClassClassData (void)
 get class info
Static Public Member Functions inherited from ZFInterface
static const ZFClassClassData (void)
 get class info

Protected Types

typedef ZFObject zfsuper
 class ref to super
typedef ZFHttpRequest zfself
 class ref to self
Protected Types inherited from ZFObject
typedef _ZFP_Obj_Base zfsuper
 class ref to super
typedef ZFObject zfself
 class ref to self
Protected Types inherited from ZFTaskId
typedef ZFInterface zfsuper
 typedef for super (always ZFInterface for an interface type)
typedef ZFTaskId zfself
 typedef for self
Protected Types inherited from ZFInterface
typedef _ZFP_ObjI_Base zfsuper
 typedef for super (always ZFInterface for an interface type)
typedef ZFInterface zfself
 typedef for self

Protected Member Functions

virtual void objectOnInit (const zfstring &url, ZFHttpMethod method=(v_ZFHttpMethod::e_GET))
 init and connect
virtual void objectOnInit (void)
 override this to init your object
virtual void objectOnDealloc (void)
 override this to destroy your object
virtual void objectInfoImplAppend (zfstring &ret)
 see objectInfo
Protected Member Functions inherited from ZFObject
virtual void objectInfoImpl (zfstring &ret)
 see objectInfo
virtual zfidentity objectHashImpl (void)
 see objectHash
virtual ZFCompareResult objectCompareImpl (ZFObject *anotherObj)
 see objectCompare
virtual ZFCompareResult objectCompareValueImpl (ZFObject *anotherObj)
 see objectCompareValue
virtual void observerOnAdd (zfidentity eventId)
 called when add first observer
virtual void observerOnRemove (zfidentity eventId)
 called when remove last observer
virtual void observerOnEvent (const ZFArgs &zfargs)
 notified when observerNotify
virtual void objectOnInitFinish (void)
 called after objectOnInit, safe to call virtual functions here
virtual void objectOnDeallocPrepare (void)
 called before objectOnDealloc, safe to call virtual functions here
virtual void objectOnRetain (void)
 called to retain object
virtual void objectOnRelease (void)
 called to release object
virtual void objectPropertyValueOnUpdate (const ZFProperty *property, const void *oldValue)
 see E_ObjectPropertyValueOnUpdate
virtual void objectPropertyValueOnReset (const ZFProperty *property)
 see E_ObjectPropertyValueOnReset

Detailed Description

http request util

typical usage:

ZFLISTENER(onRecv) {
ZFHttpResponse *response = zfargs.param0();
ZFLogTrim() << response->body();
zfobj<ZFHttpRequest>("http://xxx", "POST")
->header("Content-Type", "application/json;charset=UTF-8;")
.attr("k", "v")
.toString()
)
->start(onRecv);
#define ZFLISTENER(name)
util to declare a ZFListener locally
Definition ZFListenerDeclare.h:53
#define ZFLISTENER_END()
see ZFLISTENER
Definition ZFListenerDeclare.h:17
#define ZFLogTrim(...)
see ZFLog
Definition ZFLog.h:79
http request util
Definition ZFHttpRequest.h:121
virtual void header(const zfstring &key, const zfstring &value)
set http header
virtual zfstring body()
return current body contents
virtual void start(const ZFListener &callback=(zft_zfnull))
start the request
see ZFHttpRequest
Definition ZFHttpRequest.h:43
virtual zfstring & body()
response body
Definition ZFHttpRequest.h:59
JSON item.
Definition ZFJson.h:167
util class to alloc and hold ZFObject type
Definition ZFObjectAutoPtr.h:79

Member Function Documentation

◆ classData()

virtual const ZFClass * ZFHttpRequest::classData ( void )
inlinevirtual

get instance's class info

Reimplemented from ZFObject.

◆ E_OnRequestPrepare()

zfidentity ZFHttpRequest::E_OnRequestPrepare ( void )
static

called before request

sender is the ZFHttpRequest
call in the same thread that start was called

◆ E_OnRequest()

zfidentity ZFHttpRequest::E_OnRequest ( void )
static

called after request

sender is the ZFHttpRequest
call in the same thread that start was called

◆ E_OnResponsePrepare()

zfidentity ZFHttpRequest::E_OnResponsePrepare ( void )
static

called when any response received or timeout, before E_OnResponse and impl callback

sender is the ZFHttpRequest, param0 is the ZFHttpResponse or null if timeout, param1 is a ZFResultType to indicate result type
call in the same thread that start was called

◆ E_OnResponse()

zfidentity ZFHttpRequest::E_OnResponse ( void )
static

called when any response received or timeout

sender is the ZFHttpRequest, param0 is the ZFHttpResponse or null if timeout, param1 is a ZFResultType to indicate result type
call in the same thread that start was called

◆ header()

virtual void ZFHttpRequest::header ( const zfstring & key,
const zfstring & value )
virtual

set http header

note, null or empty value is also valid, use headerRemove or headerIterRemove to remove

◆ body()

virtual zfstring ZFHttpRequest::body ( )
virtual

return current body contents

may cause additional memory copy, usually for debug use only

◆ start()

virtual void ZFHttpRequest::start ( const ZFListener & callback = (zft_zfnull))
virtual

start the request

callback would be called in the same thread that called this method, sender is the owner ZFHttpRequest, param0 is the ZFHttpResponse or null if timeout, param1 is a ZFResultType to indicate result type

◆ stop()

virtual void ZFHttpRequest::stop ( )
virtual

cancel the request

Implements ZFTaskId.

◆ objectOnInit()

virtual void ZFHttpRequest::objectOnInit ( void )
protectedvirtual

override this to init your object

subclass must call superclass's objectOnInit before any other code if override
you may also declare objectOnInit with params like this:

zfclass Parent : ... {
...
protected:
virtual void objectOnInit(void) {...};
};
zfclass Child : Parent {
protected:
// override all parent's objectOnInit is also required,
// because of function hiding of C++
virtual void objectOnInit(void) {
}
// custom init entry
virtual void objectOnInit(Params...) {
// your extra init steps
...
}
};
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
virtual void objectOnInit(void)
override this to init your object
virtual void objectOnInit(void)
override this to init your object
Warning
objectOnInit and objectOnDealloc is called as a virtual function, take good care of other virtual function call, use zfself::func() instead of this->func() if necessary, or use objectOnInitFinish/objectOnDeallocPrepare, or declare your own constructor with ZFOBJECT_DECLARE_WITH_CUSTOM_CTOR
Note
(ZFTAG_LIMITATION) due to limitations of C++, if your parent type declared objectOnInit with different params, and your child type want to override part of those objectOnInit, then your child type must also override all objectOnInit that parent declared, otherwise, some may be hidden
for objects that designed not to be allocated by user, you should use ZFOBJECT_PRIVATE_ALLOC, typically usage:
zfclass MyObject : zfextend ZFObject {
ZFOBJECT_DECLARE(MyObject, ZFObject)
ZFOBJECT_PRIVATE_ALLOC("should be created by MyObject::instanceForXxx only")
public:
static zfauto instanceForXxx(xxx) {
// can only be allocated by reflection
}
};
static void func(void) {
// MyObject *obj = zfobjAlloc(MyObject); // would compile error
zfauto obj = MyObject::instanceForXxx(xxx); // OK
}
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:126
#define ZFOBJECT_PRIVATE_ALLOC(...)
mark this object can not be allocated directly
Definition ZFObjectDeclare.h:245
zfauto newInstance(void) const
make a new instance of ZFObject dynamically, which is described by ZFClass
static const ZFClass * ClassData(void)
get class info
Definition ZFHttpRequest.h:122
a ZFObject holder which would release content object automatically when destroyed
Definition zfautoFwd.h:34

Reimplemented from ZFObject.

◆ objectOnDealloc()

virtual void ZFHttpRequest::objectOnDealloc ( void )
protectedvirtual

override this to destroy your object

subclass must call superclass's objectOnDealloc after any other code if override
see objectOnInit for more info

Reimplemented from ZFObject.

◆ objectInfoImplAppend()

virtual void ZFHttpRequest::objectInfoImplAppend ( zfstring & ret)
protectedvirtual

see objectInfo

Reimplemented from ZFObject.


The documentation for this class was generated from the following file: