• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: C/C++
  • 标签: POST和GET  

资源简介

通过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


评论

共有 条评论