資源簡(jiǎn)介
本資源是一個(gè)封裝類(lèi),采用異步方式解決了Wininet不能設(shè)置超時(shí)的問(wèn)題,當(dāng)前異步采用C++11線(xiàn)程庫(kù)及同步方式,可修改為MFC工作線(xiàn)程后在VS2012以下版本使用。JSON解析庫(kù)采用JSONCPP。調(diào)用方式參考:
CWininetHttp MyHttp;
bool bSucess=false;
iMyHttp.RequestJsonInfo((LPCTSTR)m_strUrl,Hr_Post,"Content-Type:application/x-www-form-urlencoded",strData,m_nTimeOut);
if (!MyHttp.ParseJsonInfo())
CWininetHttp MyHttp;
bool bSucess=false;
iMyHttp.RequestJsonInfo((LPCTSTR)m_strUrl,Hr_Post,"Content-Type:application/x-www-form-urlencoded",strData,m_nTimeOut);
if (!MyHttp.ParseJsonInfo())
代碼片段和文件信息
#include?“stdafx.h“
#include?“WininetHttp.h“??
#include???
#pragma?comment(lib?“Wininet.lib“)??
#include???
using?namespace?std;??
CWininetHttp::CWininetHttp(void):m_hSession(NULL)m_hConnect(NULL)m_hRequest(NULL)??
{?
m_mapErr[Hir_Success]=_T(“成功“);
m_mapErr[Hir_InitErr]=_T(“初始化失敗“);
m_mapErr[Hir_ConnectErr]=_T(“連接HTTP服務(wù)器失敗“);
m_mapErr[Hir_SendErr]=_T(“發(fā)送請(qǐng)求失敗“);
m_mapErr[Hir_QueryErr]=_T(“查詢(xún)HTTP請(qǐng)求頭失敗“);
m_mapErr[Hir_404]=_T(“頁(yè)面不存在“);
m_mapErr[Hir_IllegalUrl]=_T(“無(wú)效的URL“);
m_mapErr[Hir_CreateFileErr]=_T(“創(chuàng)建文件失敗“);
m_mapErr[Hir_DownloadErr]=_T(“下載失敗“);?
m_mapErr[Hir_QueryIPErr]=_T(“獲取域名對(duì)應(yīng)的地址失敗“);?
m_mapErr[Hir_SocketErr]=_T(“套接字錯(cuò)誤“);?
m_mapErr[Hir_UserCancel]=_T(“用戶(hù)取消下載“);?
m_mapErr[Hir_BufferErr]=_T(“文件太大,緩沖區(qū)不足“);?
m_mapErr[Hir_HeaderErr]=_T(“HTTP請(qǐng)求頭錯(cuò)誤“);?
m_mapErr[Hir_ParamErr]=_T(“參數(shù)錯(cuò)誤,空指針,空字符“);?
m_mapErr[Hir_UnknowErr]=_T(“未知的錯(cuò)誤“);??
ready?=?false;
m_bSucess?=?false;
}??
CWininetHttp::~CWininetHttp(void)??
{??
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件????????7694??2017-11-25?16:58??WininetHttp.cpp
?????文件????????2616??2017-11-24?23:04??WininetHttp.h
評(píng)論
共有 條評(píng)論