关于用CHttpFile发送http 报文的问题

yyang0514 2017-10-24 03:49:59
用CHttpFile 发送数据遇到如下问题:
1.发送的get报文是用TCP协议,而网站返回的报文用http协议(先传输http/1.1 200 ok,然后传输Html数据)。
2.如何修改http报文版本。 分析报文是get的版本是http/1.1,但是AddRequestHeaders中并没有设置这个值。
3.有没有解析http或者soap报文的代码参考,我需要做一个soap 协议相关的东西。
谢谢!


CString strUrl = _T("http://www.baidu.com/");
LPCTSTR strAgent=_T("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1024; .NET CLR 2.0.50727)");
CInternetSession *m_pSession= new CInternetSession(strAgent); ;
CHttpConnection *m_pConnection;
CHttpFile *m_pFile;
AfxParseURL(strUrl, dwServiceType, strServer, strObject, nPort);
if (AFX_INET_SERVICE_HTTP != dwServiceType && AFX_INET_SERVICE_HTTPS != dwServiceType)
{
return FAILURE;
}

try
{
m_pConnection = m_pSession->GetHttpConnection(strServer,
dwServiceType == AFX_INET_SERVICE_HTTP ? NORMAL_CONNECT : SECURE_CONNECT,
nPort);
m_pFile = m_pConnection->OpenRequest(strMethod, strObject,
NULL, 1, NULL, NULL,
(dwServiceType == AFX_INET_SERVICE_HTTP ? NORMAL_REQUEST : SECURE_REQUEST));

/*设置请求相关参数*/
m_pFile->AddRequestHeaders(L"Accept: */*,application/json\r\n");//accept请求报头域,表示客户端接受哪些类型的信息
m_pFile->AddRequestHeaders(L"Accept-Charset:UTF8\r\n");
m_pFile->AddRequestHeaders(L"Accept-Language: zh-cn;q=0.8,en;q=0.6,ja;q=0.4\r\n");
m_pFile->AddRequestHeaders(L"Content-Type:application/json\r\n");//content为实体报头域,格式及编码

//m_pFile->SendRequest(NULL, 0, (LPVOID)(LPCTSTR)strPostData, strPostData == NULL ? 0 : _tcslen(strPostData));

/*请求body内容先转为UTF-8编码,与服务端保持一致,cword为要发送内容*/
char*cword; //ANSI指针
if (strPostData != NULL){
DWORD num = WideCharToMultiByte(CP_UTF8, 0, strPostData, -1, NULL, 0, NULL, NULL);//計算這個UNICODE实际由几个UTF-8字組成
cword = (char*)calloc(num, sizeof(char)); //申请空间
if (cword == NULL) //是否申请
{
free(cword);
}
memset(cword, 0, num*sizeof(char)); //初始化
WideCharToMultiByte(CP_UTF8, 0, strPostData, -1, cword, num, NULL, NULL);
printf("content长度为%d\n", strlen(cword));
m_pFile->SendRequest(NULL, 0, cword, strlen(cword));//发送请求
}
else{
m_pFile->SendRequest(NULL, 0, NULL, 0);//发送请求
}

...全文
415 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyang0514 2017-10-24
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
http://blog.csdn.net/xjkstar/article/details/20052443
谢谢你的回复。 gsoap一时半会儿还很难消化。 我能不能将soap协议理解为http server+xml解析的过程。
oyljerry 2017-10-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/xjkstar/article/details/20052443

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧