📄 httpengine.cpp
字号:
#include "StdAfx.h"
#include ".\httpengine.h"
CHttpEngine::CHttpEngine(MHTTPResponseObserver& aResponseObserver)
:iSession(*this),iResponseObserver(aResponseObserver)
{
iSession.Open();
}
CHttpEngine::~CHttpEngine(void)
{
}
bool CHttpEngine::GetRequestL( const char* aUrl )
{
//解析url
bool ret=iUrlParser.Parse(aUrl);
if (!ret)
{
return false;
}
//连接
ret=iSession.Connect(iUrlParser.Host(),iUrlParser.Port());
if (!ret)
{
return false;
}
//设置请求信息
iHttpMsg.SetUri(iUrlParser.Uri());
iHttpMsg.SetHost(iUrlParser.Host());
iHttpMsg.AddContent(iUrlParser.Body());
string msg;
iHttpMsg.Ptr(msg);
//启动接收线程
iSession.Start();
//发送请求
iSession.Send(msg.c_str());
return true;
}
bool CHttpEngine::PostRequestL( const char* aUrl)
{
//解析url
bool ret=iUrlParser.Parse(aUrl);
if (!ret)
{
return false;
}
//连接
ret=iSession.Connect(iUrlParser.Host(),iUrlParser.Port());
if (!ret)
{
return false;
}
//设置请求信息
iHttpMsg.SetMethod(HTTP::EPOST);
iHttpMsg.SetUri(iUrlParser.Uri());
iHttpMsg.SetHost(iUrlParser.Host());
string msg;
iHttpMsg.Ptr(msg);
//启动接收线程
iSession.Start();
//发送请求
iSession.Send(msg.c_str());
return true;
}
void CHttpEngine::AddRequestField( const char* aFieldName,const char* aValue )
{
iHttpMsg.AddField(aFieldName,aValue);
}
void CHttpEngine::AddRequestContent( const char* aContent )
{
iHttpMsg.AddContent(aContent);
}
void CHttpEngine::MHFRunL( const char* pBuf,int length )
{
//此处解析HTTP响应
iResponseMsg.Parse(pBuf,length);
iResponseObserver.MHTTPRequestCallBack(iResponseMsg);
//打印测试
/*printf("status:%d\n",iResponseMsg.Status());
string str;
iResponseMsg.HeaderStr(str);
printf("header:\n%s\n",str.c_str());
printf("body:%s\n",iResponseMsg.Body());*/
printf("%s\n,length:%d\n",pBuf,length);
}
void CHttpEngine::AddHeader( THTTP aHeader,const char* aValue )
{
iHttpMsg.AddHeader(aHeader,aValue);
}
void CHttpEngine::AddHeader( THTTP aHeader,THTTP aValue )
{
iHttpMsg.AddHeader(aHeader,aValue);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -