📄 httpengine.h
字号:
#ifndef HTTPENGINE_H_
#define HTTPENGINE_H_
// INCLUDES
// System includes
#include <e32base.h> // CBase
#include <http/MHTTPAuthenticationCallback.h> // MHTTPAuthenticationCallback
#include <mhttpdatasupplier.h> // MHTTPDataSupplier
#include <mhttptransactioncallback.h> // MHTTPTransactionCallback
#include <RHTTPSession.h> // RHTTPSession
#include <RHTTPTransaction.h> // RHTTPTransaction
#include <ES_SOCK.H> // RSocketServ,RConnection
class MHTTPEngineObserver
{
public:
//! @brief 处理响应头
//! @details
//! @param aStatusCode 响应头状态码
//! @param aSessionId HTTP交互Session Id
virtual void ResponseStatusL(TInt aStatusCode, const TDesC8& aSessionId) = 0;
//! @brief 处理响应体
//! @details
//! @param aBuffer 响应体字符串
virtual void ResponseBodyDataL(const TDesC& aBuffer) = 0;
//! @brief 处理HTTP响应结束
//! @details
virtual void ResponseReceivedL() = 0;
};
//! @class CQiQiHTTPEngine
//! @brief HTTP事务处理的引擎类
//! @details
class CQiQiHTTPEngine : public CBase,
public MHTTPTransactionCallback
{
public:
static CQiQiHTTPEngine* NewL(MHTTPEngineObserver& aObserver);
~CQiQiHTTPEngine();
//! @brief 发送Get HTTP请求
//! @details
//! @param aUri 请求URL
//! @param aAccept 请求数据类型
void GetRequestL(const TDesC& aUri, const TDesC8& aAccept);
//! @brief 关闭所有正在运行的事务,并释放相关资源
//! @details
void Cancel();
private: // from MHTTPTransactionCallback
void MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent);
TInt MHFRunError(TInt aError, RHTTPTransaction aTransaction, const THTTPEvent& aEvent);
private:
CQiQiHTTPEngine(MHTTPEngineObserver& aObserver);
void ConstructL();
void ParseUriL(const TDesC& aUri);
void AddHeaderL(RHTTPHeaders aHeaders, TInt aHeaderField, const TDesC8& aHeaderValue);
private:
RSocketServ iSocketServ;
RConnection iConnection;
RHTTPSession iSession;
RHTTPTransaction iTransaction;
HBufC8* iUri;
TUriParser8 iUriParser;
MHTTPEngineObserver& iActive;
};
#endif /*HTTPENGINE_H_*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -