資源簡(jiǎn)介
此HTTP類(lèi)使用C++編寫(xiě),用Socket技術(shù)實(shí)現(xiàn)HTTP,直接在成熟商業(yè)項(xiàng)目中抽取出來(lái)的,經(jīng)過(guò)了多年的使用和改善,已經(jīng)非常穩(wěn)定,是學(xué)習(xí)Socket和HTTP的優(yōu)秀資源,同時(shí)也是可以直接拿去在實(shí)際項(xiàng)目中的使用模塊。
功能:
1.實(shí)現(xiàn)了HTTP的GET、POST操作。
2.自動(dòng)管理Cookies,也可以通過(guò)接口控制Cookies。
3.自動(dòng)進(jìn)行編碼轉(zhuǎn)換。
說(shuō)明:
1.使用此類(lèi)之前必須調(diào)用Init接口進(jìn)行初始化。
2.如果中文出現(xiàn)亂碼,請(qǐng)?jiān)谡{(diào)用Get、Post之前調(diào)用SetCodePage設(shè)置編碼。
3.如需要封裝好的HTTPS、異步HTTP、完成端口TCP等商業(yè)源碼,請(qǐng)聯(lián)系作者。

代碼片段和文件信息
#include?“StdAfx.h“
#include?“CodePageConvert.h“
/******************************************************************************
把源串轉(zhuǎn)換為寬字符串
******************************************************************************/
bool?MBToWC(wstring?&?strWC?string?strSrc?UINT?uiSrcCodePage)
{
//獲取轉(zhuǎn)換為寬字符編碼所需的長(zhǎng)度
if?(strSrc?==?““)
{
strWC?=?L““;
return?true;
}
int?nNeedSizeWC?=?MultiByteToWideChar(uiSrcCodePage?0
?strSrc.c_str()?-1?NULL?0);
if?(nNeedSizeWC?<=?0)
{
return?false;
}
//分配足夠的字符串空間,減去結(jié)束符
strWC.resize(nNeedSizeWC?-?1);
//進(jìn)行轉(zhuǎn)換
if?((int)strWC.size()? {
return?false;
}
int?nSizeWC?=?MultiByteToWideChar(uiSrcCodePage?0
?strSrc.c_str()?-1
?(LPWSTR)strWC.c_str()?nNeedSizeWC);
if?(nSizeWC?<=?0)
{
return?false;
}
return?true;
}
/******************************************************************************
把寬字符串轉(zhuǎn)換為目標(biāo)串
******************************************************************************/
bool?WCToMB(string?&?strDst?wstring?strWC?UINT?uiDstCodePage)
{
//獲取轉(zhuǎn)換為目標(biāo)字符編碼所需的長(zhǎng)度
if?(strWC?==?L““)
{
strDst?=?““;
return?true;
}
int?nNeedSizeMB?=?WideCharToMultiByte(uiDstCodePage?0
?strWC.c_str()?-1?NULL?0?NULL?NULL);
if?(nNeedSizeMB?<=?0)
{
return?false;
}
//分配足夠的字符串空間
strDst.resize(nNeedSizeMB?-?1);
//進(jìn)行轉(zhuǎn)換
if?((int)strDst.size()? {
return?false;
}
int?nSizeA?=?WideCharToMultiByte(uiDstCodePage?NULL?strWC.c_str()
?-1?(LPSTR)strDst.c_str()?nNeedSizeMB?NULL?NULL);
if?(nSizeA?<=?0)
{
return?false;
}
return?true;
}
/******************************************************************************
把源串轉(zhuǎn)換為目標(biāo)串
******************************************************************************/
bool?MBToMB(string?&?strTrans
?UINT?uiDstCodePage?UINT?uiSrcCodePage)
{
//先把源串轉(zhuǎn)換為寬字符串
if?(strTrans?==?““)
{
return?true;
}
wstring?strWC?=?L““;
if?(!MBToWC(strWC?strTrans?uiSrcCodePage))
{
return?false;
}
if?(strWC?==?L““)
{
return?false;
}
//再把寬字符串轉(zhuǎn)換為目標(biāo)串
if?(!WCToMB(strTrans?strWC?uiDstCodePage))
{
return?false;
}
if?(strTrans?==?““)
{
return?false;
}
return?true;
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????1229??2013-11-13?15:49??CodePageConvert.h
?????文件???????1141??2013-05-10?22:21??CriticalLock.cpp
?????文件????????989??2015-10-28?18:22??CriticalLock.h
?????文件???????4845??2014-06-14?09:29??DNSMap.cpp
?????文件???????3094??2015-10-28?18:25??DNSMap.h
?????文件???????1066??2013-05-05?17:19??DNSMapTypes.h
????I.A....?????39947??2015-10-28?18:25??HTTP.cpp
?????文件??????19032??2015-10-28?20:59??HTTP.h
?????文件???????4234??2015-10-28?18:19??HTTPTypes.h
?????文件???????2389??2014-07-01?13:02??CodePageConvert.cpp
-----------?---------??----------?-----??----
????????????????77966????????????????????10
評(píng)論
共有 條評(píng)論