資源簡介
本資源是一個封裝類,采用異步方式解決了Wininet不能設置超時的問題,當前異步采用C++11線程庫及同步方式,可修改為MFC工作線程后在VS2012以下版本使用。JSON解析庫采用JSONCPP。調用方式參考:
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服務器失敗“);
m_mapErr[Hir_SendErr]=_T(“發送請求失敗“);
m_mapErr[Hir_QueryErr]=_T(“查詢HTTP請求頭失敗“);
m_mapErr[Hir_404]=_T(“頁面不存在“);
m_mapErr[Hir_IllegalUrl]=_T(“無效的URL“);
m_mapErr[Hir_CreateFileErr]=_T(“創建文件失敗“);
m_mapErr[Hir_DownloadErr]=_T(“下載失敗“);?
m_mapErr[Hir_QueryIPErr]=_T(“獲取域名對應的地址失敗“);?
m_mapErr[Hir_SocketErr]=_T(“套接字錯誤“);?
m_mapErr[Hir_UserCancel]=_T(“用戶取消下載“);?
m_mapErr[Hir_BufferErr]=_T(“文件太大,緩沖區不足“);?
m_mapErr[Hir_HeaderErr]=_T(“HTTP請求頭錯誤“);?
m_mapErr[Hir_ParamErr]=_T(“參數錯誤,空指針,空字符“);?
m_mapErr[Hir_UnknowErr]=_T(“未知的錯誤“);??
ready?=?false;
m_bSucess?=?false;
}??
CWininetHttp::~CWininetHttp(void)??
{??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????7694??2017-11-25?16:58??WininetHttp.cpp
?????文件????????2616??2017-11-24?23:04??WininetHttp.h
評論
共有 條評論