资源简介
通过HTTP协议上传文本和二进制数据、支持POST方式、支持GET方式;
代码片段和文件信息
// SmuConnection.cpp: implementation of the CHttpPost class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include
#include
#include
#include
#include
#include “CritSec.h“
#include “HttpConnection.h“
//#include “afxinet.h“
#pragma comment(lib “WinInet.lib“)
#pragma comment(lib “ws2_32.lib“)
#define MAX_RECV_SIZE 1024*1024*2
#define RECVBUFSIZE 1024*1024*2
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CHttpPost::CHttpPost()
{
m_hSmuSession = NULL;
m_hSmuConn = NULL;
m_bStarted = false;
}
CHttpPost::~CHttpPost()
{
if (m_bStarted)
{
StopHttp();
}
}
bool CHttpPost::ConnectHttp(char * strIp int Port char * strUsername char * strPassword)
{
//参数验证
if (!strIp || Port==0 )
{
return false;
}
//连接HTTP中心
CAutoLock lock( &m_sCs );
if (m_hSmuSession == NULL || m_hSmuSession == INVALID_HANDLE_VALUE)
{
m_hSmuSession = InternetOpen(NULL INTERNET_OPEN_TYPE_PRECONFIG NULL NULL INTERNET_FLAG_EXISTING_CONNECT);
if (m_hSmuSession == NULL)
{
m_bStarted = false;
return false;
}
else if (m_hSmuSession == INVALID_HANDLE_VALUE)
{
m_hSmuSession = NULL;
m_bStarted = false;
return false;
}
}
// 设置session选项
DWORD dwRetries = 5 dwConnTimeOut = 1000 dwTimeOut=3000;
InternetSetOption( m_hSmuSession INTERNET_OPTION_CONNECT_RETRIES (LPVOID)&dwRetries sizeof(DWORD) );
InternetSetOption( m_hSmuSession INTERNET_OPTION_CONNECT_TIMEOUT (LPVOID)&dwConnTimeOut sizeof(DWORD) ) ;
InternetSetOption( m_hSmuSession INTERNET_OPTION_DISCONNECTED_TIMEOUT (LPVOID)&dwTimeOut sizeof(DWORD));
InternetSetOption( m_hSmuSession INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT (LPVOID)&dwTimeOut sizeof(DWORD));
InternetSetOption( m_hSmuSession INTERNET_OPTION_CONTROL_SEND_TIMEOUT (LPVOID)&dwTimeOut sizeof(DWORD));
InternetSetOption( m_hSmuSession INTERNET_OPTION_DATA_SEND_TIMEOUT (LPVOID)&dwTimeOut sizeof(DWORD));
InternetSetOption( m_hSmuSession INTERNET_OPTION_DATA_RECEIVE_TIMEOUT (LPVOID)&dwTimeOut sizeof(DWORD));
if (m_hSmuConn == NULL || m_hSmuConn == INVALID_HANDLE_VALUE)
{
m_hSmuConn = InternetConnect(m_hSmuSession
strIp
Port
strUsername
strPassword
INTERNET_SERVICE_HTTP INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_KEEP_CONNECTION
1);
if (m_hSmuConn == NULL || m_hSmuConn == INVALID_HANDLE_VALUE)
{
InternetCloseHandle(m_hSmuSession);
m_hSmuSession = NULL;
m_hSmuConn = NULL;
m_bStarted = false;
return false;
}
}
m_bStarted = true;
return true;
}
bool CHttpPost::PostText(char* pMsgchar* address)
{
CAutoLock lock( &m_sCs );
TCHAR szRequestHeader[512] = { 0 };
//TCHAR szPreFileData[属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 23391 2017-11-29 09:34 HttpConnection.cpp
文件 2045 2017-11-29 09:34 HttpConnection.h
----------- --------- ---------- ----- ----
25436 2
相关资源
- C语言中 文件读取和写入的详细操作代
- 练习:基于c语言的8位二进制原码一位
- plist 文件文本二进制互转
- C语言写的UDP文件传输
- 指令系统的自主和兼容视频截图版.
- c++链接数据库用二进制存储图像,并
- MFC读取二进制文件并保存为文本文件
-
Windows平台c++工程ba
se64与二进制文件 - 基于c++的大整数运算(支持二进制以
- 哈夫曼压缩与解压算法(可以直接运
- c++编写的简单的汇编器
- 二进制乘法多种方式 C语言
- C++实现文件复制视频,图像,文本,
- C语言编写二进制数搜索程序
- 用栈实现十进制转换成二进制(c语言
- 二进制文件转换成文本文件
- 纯C语言实现https的post和get不依赖任何
- http上传C++代码实现
- mysql 将图片以二进制格式存储到数据
- 文件版本号修改
- MFC基于对话框的二进制与十六进制间
- c++ 浮点数二进制格式
- 把十进制转化为八进制、十六进制、
- 二进制数相乘-分治法-C语言实现
- 用C++语言编写的基于MFC的计算器程序
- 任意文件转C语言数组 二进制BIN文件、
- C语言课程设计之二进制运算
- 二进制转原码反码补码 C语言源码
川公网安备 51152502000135号
评论
共有 条评论