资源简介
自己封装了一个winhttp类,里面包括了获取时间戳,cookie操作。代理操作。头信息操作。返回状态码,post,get,put,图片下载,文档下载,url编码,unicode,ansi转换,utf8编码,等等操作。基本上所有的网络操作都包括了,直接可用。
代码片段和文件信息
#include “StdAfx.h“
#include “Winhttp.h“
// const IID IID_IWinHttpRequest =
// {
// 0x016fe2ec
// 0xb2c8
// 0x45f8
// {0xb2 0x3b 0x39 0xe5 0x3a 0x75 0x39 0x6b}
// };
// const IID IID_IWinHttpRequest =
// {
// 0x06f29373 0x5c5a 0x4b54
// {0xb0 0x25 0x6e 0xf1 0xbf 0x8a 0xbf 0x0e}
// };
CWinhttp::CWinhttp(void)
{
CoInitializeEx(NULL COINIT_MULTITHREADED );
m_pResponseBody = NULL;
const IID IID_IWinHttpRequest =
{
0x06f29373
0x5c5a
0x4b54
{0xb0 0x25 0x6e 0xf1 0xbf 0x8a 0xbf 0x0e}
};
HRESULT hr = m_pHttpReq.CreateInstance(__uuidof(WinHttpRequest));//实例化智能指针
if (m_pHttpReq)
{
//设置为TRUE以启用Passport身份验证支持
COleVariant varTrue = VARIANT_TRUE;
m_pHttpReq->PutOption(WinHttpRequestOption_EnablePassportAuthentication varTrue);
//开启https到http之间的重定向
WinhttpEnableHttpsToHttpRedirects(true);
//使用TLS1协议
//_variant_t val = SslErrorFlag_Ignore_All;
m_pHttpReq->PutOption(WinHttpRequestOption_SslErrorIgnoreFlags SslErrorFlag_Ignore_All);
//使用TLS1协议 需要tls1.2等协议。需要注释掉这里。不在设置协议,
//COleVariant varTLS1 = (long)SecureProtocol_TLS1;
//m_pHttpReq->PutOption(WinHttpRequestOption_SecureProtocols varTLS1);
COleVariant varhttp = VARIANT_TRUE;
m_pHttpReq->PutOption(WinHttpRequestOption_EnableHttp1_1varhttp);
}
}
CWinhttp::~CWinhttp(void)
{
if(m_pResponseBody)
{
delete [] m_pResponseBody;
}
}
//需要访问的网址 method = GET PUT HEAD POST strurl 网址
bool CWinhttp::WinhttpOpen(CString strUrlCString strMethod__ENCODE _codelong nTimer)
{
//if( SUCCEEDED( hr ) ){...} // 如果成功
//if( FAILED( hr ) ){...} // 如果失败
//设置超时 连接超时 发送超时 接收超时
m_encode = _code ; //设置默认解码
m_pHttpReq->SetTimeouts(0 nTimer*1000 nTimer*1000 nTimer*1000);
HRESULT hr = S_FALSE;
try
{
COleVariant varhttp = VARIANT_FALSE;
hr = m_pHttpReq->Open((LPCTSTR)strMethod (LPCTSTR)strUrlvarhttp);
if (FAILED(hr)) {
return false;
}
//插入host先
insterHostHeader(FindString(strUrl_T(“://“)_T(“/“)));
}catch (_com_error &e)
{
_bstr_t bstrErr = e.Description();
//m_strLastError = (LPCTSTR)bstrErr;
return false;
}
return true;
}
// 添加访问网址的头信息
bool CWinhttp::WinhttpInsterHeader(CString strTypeCString strData)
{
//if( SUCCEEDED( hr ) ){...} // 如果成功
//if( FAILED( hr ) ){...} // 如果失败
HRESULT hr = S_FALSE;
try
{
hr =m_pHttpReq->SetRequestHeader((_bstr_t)strType (_bstr_t)strData);
if (FAILED(hr)) {
return false;
}
}catch (_com_error &e)
{
_bstr_t bstrErr = e.Description();
//m_strLastError = (LPCTSTR)bstrErr;
return false;
}
return true;
}
//插入新的cookies信息
bool CWinhttp::WinhttpInsterCookies(CString strData)
{
return WinhttpInsterHeader(_T(“cookie“)strData);
}
// 添加浏览器useragent信息
bool CWinhttp::WinhttpInsterUserAgent(CString strUserAgent)
{
try
{
m_pHttpReq->PutOption(WinHttpRequestOption_UserAgentString(_bstr_t)strUserAgent);
}c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-04 12:36 winhttp\
文件 30919 2018-09-19 16:38 winhttp\Winhttp1.cpp
文件 5840 2018-09-13 23:54 winhttp\Winhttp1.h
- 上一篇:flex的as3xls读写excel
- 下一篇:DNS发展简介
相关资源
- 小型公司工资管理系统设计
- Delphi通过https接口post数据
- Posterior Regularization for Structured Latent
- 调用webservice,通过post传参读取返回的
- Xamarin移动开发Get、Post服务请求源码
- OpenGL实现下雪的效果
- pb9 通过http、https协议post
- Unity Post Processing Profiles v2.1
- 打印模板工具
- postmark+教程
- 排课表程序拓扑排序
- wininetForNet源代码
- 模仿发送Http的Get、Post请求
- Delphi Https-Post
-
PostGIS GeoDjango+Openla
yers 三者结合实现 - QT实现http GET POST操作
- Wince下socket实现的HTTP类,支持POST和
- http_load修改版,只支持post请求,顺序
- vs2005下使用winhttp的头文件和lib文件
- erlang使用post方式发送json数据
- 常用国际会议 poster模板
- 种子填充算法VC程序.rar
- TestSapPost.rar
- postman最新版本
- 说话人识别完整源码 vs2010
- HttpClient发送post请求传输json数据
- Chrome Postman JsonView离线扩展
- Postman插件 官方绿色版---简化测试流程
- Postman-REST-Client_v0.8.1.crx 绿色版
- Postman-REST-Client_v0.8.1
评论
共有 条评论