java http请求发送unicode_c++ 使用httpclient获取网页及utf8与unicode之间转码
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之间转码相关推荐
- java取开始时间和结束时间_java获取指定开始时间与结束时间之间的所有日期
本文实例为大家分享了java获取指定开始时间与结束时间之间的所有日期的具体代码,供大家参考,具体内容如下 import java.text.SimpleDateFormat; import java. ...
- java http请求发送unicode_Java发送http请求
最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet.post与get的不同之处在于post的参数不是放在URL字串里面,而是放 ...
- java实现请求发送_java实现响应重定向发送post请求操作示例
本文实例讲述了java实现响应重定向发送post请求操作.分享给大家供大家参考,具体如下: 关于重定向我们用的比较多的还是redirect:重定向,默认发送的get请求. return "r ...
- 利用HttpClient 获取网页数据java代码模版
2019独角兽企业重金招聘Python工程师标准>>> HttpClientBuilder httpClientBuilder=HttpClients.custom();HttpCl ...
- java 爬虫 百度新闻_基于HttpClient实现网络爬虫~以百度新闻为例
在曾经的工作中,实现过简单的网络爬虫,没有系统的介绍过,这篇博客就系统的介绍以下怎样使用java的HttpClient实现网络爬虫. 关于网络爬虫的一些理论知识.实现思想以及策略问题.能够參考百度百科 ...
- java发送ipmsg_用Java向IPMSG发送消息
# re: 用Java向IPMSG发送消息 hehe but No File Packages Defined on sourceforge. IP MSG程序效率写的很高 曲强 Nicky 评论于 ...
- java 维文生成图片_维文、哈萨克文、柯尔克孜文检测 (java实现把UTF-8转为unicode)...
对于特定语言的检测并不是一个困难的问题:统计一段文字中有多少个字符落在某语言的基本语素集合(例如:中文中的声韵母)中,然后计算比例,就可以给出答案. 已经有ibm的icu在这方面做得很好,而且计算速度 ...
- Java工具类:HttpUtil(HttpClient实现http的请求,获取响应)
(1)maven 依赖: <!-- HttpClinet 核心包 --> <dependency><groupId>org.apache.httpcomponent ...
- java根据PostMan发送请求:设置接口请求工具类。
我们使用java代码进行接口远程调用第三方接口时,总会抒写接口代码,那么有这么多种方式进行发送请求.那我们应该怎么使用呢? 比如有webservice接口,比如有Post请求的接口,必须有Get请求的 ...
最新文章
- OpenCV2: Mat属性type,depth,step
- 5.7.20mysql修改密码,ubuntu系统mysql5.7.20忘记root密码修改
- 数据分析工具篇pyspark应用详解——Pyspark实现PCA主成分
- 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展...
- linux ssh 远程会话保存,远程SSH会话和流程在断开后运行的5种方法
- 面板Ext.Panel使用
- 修改Visual Studio类模板注释信息
- onenote 思维导图_学生党做笔记,我为什么更推荐OneNote?看后你就明白了
- 海洋泡沫结点图完整分析
- Android ble covana,Android BLE低功耗蓝牙开发
- 精心总结了10个matplotlib绘图技巧,短小精悍,威力无穷!
- zookeeper-大数据Week6-DAY1-1-Zookeeper
- 电脑后台,电脑后台程序太多如何清理 - 卡饭网
- CAD如何快速计算面积并标注?CAD计算面积并标注
- oracle导入dmp报20000,imp导入dmp文件报:IMP-00038: 无法转换为环境字符集句柄IMP-00000: 未成功终止导入...
- 机器人仿真搭建(以ABB为例)
- 服务器常见错误原因以及处理方式
- X509数字证书学习
- [C语言界面设计]EGE图形化界面简易版教程(适合初学者)
- 电梯轴承市场现状及未来发展趋势分析
热门文章
- 开放式式商业模式_开放式和封闭式耳机之间有什么区别,我应该得到什么?
- layui搭建管理后台系统
- html 获取浏览器语言,js之获取浏览器语言
- 我的简约论坛php源码,我的论坛源代码(二)
- 磁条卡磁道笔记(2)
- 黑猫带你学UFS协议第17篇:全网最全UFS RPMB LU详解(重放保护逻辑单元)
- html页面虚化,css实现背景虚化效果的示例代码
- 地脚螺钉直径系列_地脚螺钉的作用,地脚螺钉直径规格!
- 计算机app无法删除,电脑软件卸载不掉怎么办?软件删除不掉解决技巧
- S3C6410启动方式