CString CHttpClient::doGet(CString href)

{

std::string httpsource;

CInternetSession session1(NULL,0);

CHttpFile* pHTTPFile=NULL;

try{

pHTTPFile=(CHttpFile*)session1.OpenURL(href);

}catch(CInternetException* m_pException){

//捕捉错误,否则在网络不通时进行连接会导致内存问题

pHTTPFile=NULL;

m_pException->m_dwError;

m_pException->Delete();

session1.Close();

return _T("");

}

if(pHTTPFile)

{

char sRecived[2048]={0};//初始化,避免内存问题

pHTTPFile->ReadString((LPTSTR)sRecived,1024);//避免使用CString导致乱码,unicode编码时一个字符用两个字节来编码,第二个参数使用字符数

do

{

httpsource+=sRecived;

memset(sRecived,0,2048);

} while (pHTTPFile->ReadString((LPTSTR)sRecived,1024)>0);

pHTTPFile->Close();

delete pHTTPFile;

delete[] sRecived;

}

session1.Close();

wstring result=UTF8ToUnicode(httpsource);//转码

return result.c_str();

}

std::string CHttpClient::UnicodeToUTF8( const std::wstring& str )

{

char*     pElementText;

int    iTextLen;

// wide char to multi char

iTextLen = WideCharToMultiByte( CP_UTF8,

0,

str.c_str(),

-1,

NULL,

0,

NULL,

NULL );

pElementText = new char[iTextLen + 1];

memset( ( void* )pElementText, 0, sizeof( char ) * ( iTextLen + 1 ) );

::WideCharToMultiByte( CP_UTF8,

0,

str.c_str(),

-1,

pElementText,

iTextLen,

NULL,

NULL );

std::string strText;

strText = pElementText;

delete[] pElementText;

return strText;

}

wstring CHttpClient::UTF8ToUnicode( const string& str )

{

int  len = 0;

len = str.length();

int  unicodeLen = ::MultiByteToWideChar( CP_UTF8,

0,

str.c_str(),

-1,

NULL,

0 );

wchar_t *  pUnicode;

pUnicode = new  wchar_t[unicodeLen+1];

memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));

::MultiByteToWideChar( CP_UTF8,

0,

str.c_str(),

-1,

(LPWSTR)pUnicode,

unicodeLen );

wstring  rt;

rt = ( wchar_t* )pUnicode;

delete  pUnicode;

return  rt;

}

java http请求发送unicode_c++ 使用httpclient获取网页及utf8与unicode之间转码相关推荐

  1. java取开始时间和结束时间_java获取指定开始时间与结束时间之间的所有日期

    本文实例为大家分享了java获取指定开始时间与结束时间之间的所有日期的具体代码,供大家参考,具体内容如下 import java.text.SimpleDateFormat; import java. ...

  2. java http请求发送unicode_Java发送http请求

    最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet.post与get的不同之处在于post的参数不是放在URL字串里面,而是放 ...

  3. java实现请求发送_java实现响应重定向发送post请求操作示例

    本文实例讲述了java实现响应重定向发送post请求操作.分享给大家供大家参考,具体如下: 关于重定向我们用的比较多的还是redirect:重定向,默认发送的get请求. return "r ...

  4. 利用HttpClient 获取网页数据java代码模版

    2019独角兽企业重金招聘Python工程师标准>>> HttpClientBuilder httpClientBuilder=HttpClients.custom();HttpCl ...

  5. java 爬虫 百度新闻_基于HttpClient实现网络爬虫~以百度新闻为例

    在曾经的工作中,实现过简单的网络爬虫,没有系统的介绍过,这篇博客就系统的介绍以下怎样使用java的HttpClient实现网络爬虫. 关于网络爬虫的一些理论知识.实现思想以及策略问题.能够參考百度百科 ...

  6. java发送ipmsg_用Java向IPMSG发送消息

    # re: 用Java向IPMSG发送消息 hehe but No File Packages Defined on sourceforge. IP MSG程序效率写的很高 曲强 Nicky 评论于 ...

  7. java 维文生成图片_维文、哈萨克文、柯尔克孜文检测 (java实现把UTF-8转为unicode)...

    对于特定语言的检测并不是一个困难的问题:统计一段文字中有多少个字符落在某语言的基本语素集合(例如:中文中的声韵母)中,然后计算比例,就可以给出答案. 已经有ibm的icu在这方面做得很好,而且计算速度 ...

  8. Java工具类:HttpUtil(HttpClient实现http的请求,获取响应)

    (1)maven 依赖: <!-- HttpClinet 核心包 --> <dependency><groupId>org.apache.httpcomponent ...

  9. java根据PostMan发送请求:设置接口请求工具类。

    我们使用java代码进行接口远程调用第三方接口时,总会抒写接口代码,那么有这么多种方式进行发送请求.那我们应该怎么使用呢? 比如有webservice接口,比如有Post请求的接口,必须有Get请求的 ...

最新文章

  1. OpenCV2: Mat属性type,depth,step
  2. 5.7.20mysql修改密码,ubuntu系统mysql5.7.20忘记root密码修改
  3. 数据分析工具篇pyspark应用详解——Pyspark实现PCA主成分
  4. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展...
  5. linux ssh 远程会话保存,远程SSH会话和流程在断开后运行的5种方法
  6. 面板Ext.Panel使用
  7. 修改Visual Studio类模板注释信息
  8. onenote 思维导图_学生党做笔记,我为什么更推荐OneNote?看后你就明白了
  9. 海洋泡沫结点图完整分析
  10. Android ble covana,Android BLE低功耗蓝牙开发
  11. 精心总结了10个matplotlib绘图技巧,短小精悍,威力无穷!
  12. zookeeper-大数据Week6-DAY1-1-Zookeeper
  13. 电脑后台,电脑后台程序太多如何清理 - 卡饭网
  14. CAD如何快速计算面积并标注?CAD计算面积并标注
  15. oracle导入dmp报20000,imp导入dmp文件报:IMP-00038: 无法转换为环境字符集句柄IMP-00000: 未成功终止导入...
  16. 机器人仿真搭建(以ABB为例)
  17. 服务器常见错误原因以及处理方式
  18. X509数字证书学习
  19. [C语言界面设计]EGE图形化界面简易版教程(适合初学者)
  20. 电梯轴承市场现状及未来发展趋势分析

热门文章

  1. 开放式式商业模式_开放式和封闭式耳机之间有什么区别,我应该得到什么?
  2. layui搭建管理后台系统
  3. html 获取浏览器语言,js之获取浏览器语言
  4. 我的简约论坛php源码,我的论坛源代码(二)
  5. 磁条卡磁道笔记(2)
  6. 黑猫带你学UFS协议第17篇:全网最全UFS RPMB LU详解(重放保护逻辑单元)
  7. html页面虚化,css实现背景虚化效果的示例代码
  8. 地脚螺钉直径系列_地脚螺钉的作用,地脚螺钉直径规格!
  9. 计算机app无法删除,电脑软件卸载不掉怎么办?软件删除不掉解决技巧
  10. S3C6410启动方式