C++ 与 php 的交互 之----- C++ 获取 网页文字内容,获取 php 的 echo 值。
转载请声明出处!
http://www.cnblogs.com/linguanh/category/633252.html
距离上次 谈 C++ 制作json 或者其他数据传送给 服务器,时隔两个多月。
链接:http://www.cnblogs.com/linguanh/p/4340119.html
这次是从服务器上 中获取 文字内容到控制台,或者写入本地文本等操作,废话不多说,开讲。
-----------------------------------------------------------分割线-------------------------------------------------------------
测试服务器是: 新浪云 sea;
测试内容:获取 由 php 脚步从服务器中 读取出来的 数据,我这里是 微信用户的openID;
工具:VS 2012;
先上直观的图片,后上文本源码
总体例子

核心函数

对于多字节wchar 到 lpcswtr 的转化函数介绍,请转到 该链接
http://www.cnblogs.com/linguanh/p/4241939.html

#include <iostream>
#include <fstream>
#include <Windows.h>
#include <wininet.h>
#define MAXBLOCKSIZE 28+1 // openID 固定长 28
#pragma comment(lib,"wininet.lib") //引入动态库 char* getWeiXinFromUserNameFromSEA(const char*);
using namespace std; int main(){
char *p=NULL; //用于存放返回结果
p=getWeiXinFromUserNameFromSEA("http://913337456-my.stor.sinaapp.com/xxx.txt"); cout<<p;
return ;
} //我这里设置了函数 带有 返回值,大家可以不适用返回值!
char* getWeiXinFromUserNameFromSEA(const char *Url){
char *str = new char[MAXBLOCKSIZE]; // 用于最后返回的结果,动态分配
const char *x="From_AF"; int i = ;//第一个是打开标记,i是下面的转化控制变量
WCHAR exchange_text_from_url[],exchange_text_from_x[];
LPCWSTR py = exchange_text_from_url;// url 转 lpcwstr 的中间变量
LPCWSTR pz = exchange_text_from_x; //另外的信息
//unicode编码 下的 设置,我这里使用了宽字节,免去转换的麻烦
MultiByteToWideChar( , ,x, -,exchange_text_from_x, );//WCHAR to LPCWSTR,转化
MultiByteToWideChar( , ,Url, -, exchange_text_from_url, );
//结束转化
HINTERNET handle_for_init_internet = InternetOpen("From_AF", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, );
if (handle_for_init_internet != NULL){
HINTERNET handle_for_read_info = InternetOpenUrl(handle_for_init_internet, Url, NULL,NULL,NULL,NULL);
if (handle_for_read_info != NULL){
char result[MAXBLOCKSIZE]; //用于保存 缓冲区的数据组合
char buffer[MAXBLOCKSIZE];//下载文件的缓冲区
DWORD bytes_read = ;//下载的字节数
BOOL temp_boolean;
while(bytes_read!=){
//使用 InternetReadFile 从缓存区 读取 数据到 buffer 字符串,要度的字节数是 buffer的有效长度,控制是 bytes_read
temp_boolean = InternetReadFile(handle_for_read_info,buffer,sizeof(buffer), &bytes_read);
}
for(i;i<MAXBLOCKSIZE-;i++){
if(i==MAXBLOCKSIZE- && buffer[i]==''){ //去掉最后的干扰值 0 }else if(buffer[i]>= && buffer[i]<=){ //多种测试,最终还是使用 ASCII 码范围判断来解决了 烫烫烫~~~~
//cout<<buffer[i]; //通过使用循环 针对性地 输出单个 字符消除缓冲区的其他混杂 空量
//这里不直接搞出 buffer 是因为,缓存区里有很多 不知什么数据在输出的时候会变成很多烫,一般是空才会有烫
result[i]=buffer[i]; //经过测试,这个逐个赋值能够去掉 其中夹杂的 烫~~~
}
}
result[i]='\0'; //赋值 结尾 符,防止 自身爆 烫
strcpy(str,result); //copy 给 字符串指针,用于返回
//安全操作,销毁句柄
InternetCloseHandle(handle_for_read_info); handle_for_read_info = NULL;
}
InternetCloseHandle(handle_for_init_internet); handle_for_init_internet = NULL;
return str;
}
}
C++ 与 php 的交互 之----- C++ 获取 网页文字内容,获取 php 的 echo 值。的更多相关文章
- C++ 与 php 的交互 之----- C++ 异步获取 网页文字内容,异步获取 php 的 echo 值。
已搬迁至 http://www.cnblogs.com/linguanh/p/4543836.html
- Python获取网页指定内容(BeautifulSoup工具的使用方法)
Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包. ...
- telnet建立http连接获取网页HTML内容
利用telnet可以与服务器建立http连接,获取网页,实现浏览器的功能.它对于需要对http header进行观察和测试到时候非常方便.因为浏览器看不到http header. 步骤如下: 1. 运 ...
- C# 获取网页数据、获取本机IP 分类: C# 2014-12-16 14:59 308人阅读 评论(0) 收藏
说明: (1) http://www.3322.org/dyndns/getip 这个网址可以获取本机IP,读取的内容就是本机IP (2)方法经测试,可以实现. (3)参考:http://www.cn ...
- 黄聪:C#获取网页HTML内容的三种方式
C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse. 方法一:使用WebClient static void ...
- asp.net 利用HttpWebRequest自动获取网页编码并获取网页源代码
/// <summary> /// 获取源代码 /// </summary> /// <param name="url"></param& ...
- [python]获取网页中内容为汉字的字符串的判断
实际上是这样,将获取到网页中表单内容与汉字字符串作比较,即: a = request.POST['a'] if a == '博客园': print 'ok' else: print 'false' a ...
- 使用SOCKET获取网页的内容
使用fsockopen()函数来实现获取页面信息,完整代码如下 //设置字符集(由于要抓取的网易网站字符集编码是gbk编码) header("content-type:text/html;c ...
- Python3爬虫04(其他例子,如处理获取网页的内容)
#!/usr/bin/env python# -*- coding:utf-8 -*- import osimport reimport requestsfrom bs4 import Navigab ...
随机推荐
- Python2 基本数据结构源码解析
Python2 基本数据结构源码解析 Contents 0x00. Preface 0x01. PyObject 0x01. PyIntObject 0x02. PyFloatObject 0x04. ...
- lucene和es总结
一.首先介绍lucene涉及到的排序过程 1.1.如何自定义排序对象 你可以自定义collector对象: 亦可以自定义comparator对象: 可以自定义scoredoc对象,决定如何处理结果集合 ...
- C# Json传值与解析
最近接触了工作室的项目,觉得一个功能的实现有点不好,心想不能就动手改了下,做了才知道我的js是多么的渣,功能是这样的: 我要实现的功能就是当选择学院时,就放松get请请求到后台,后台返回json信息再 ...
- 一鼓作气 博客--第四篇 note4
1.元祖允许重复数据.只读元组,列表,元祖没有增删改查,比如身份证列表,不允许修改,就存成 元祖. 2. 字典 key-value对 特性: 无顺序 去重 查询速度快,比列表快多了 比list占用内存 ...
- set 集合容器实现元素的插入与中序排序
创建set 对象,方法类似于 vector set< int > s ; 初始化: set<int>s; s.insert(); s.insert(); s.insert(); ...
- 体验 ASP.NET Core 1.1 中预编译 MVC Razor 视图
这是从 ASP.NET Core 1.1 官方发布博文中学到的一招,可以在 dontet publish 时将 Razor 视图编译为 .dll 文件. 需要在 project.json 中添加如下配 ...
- Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...
- .NET中STAThread和MTAThread
本文讨论在.NET中使用进程内COM组件时的公寓模型,以一个示例直观演示STAThread和MTAThread的作用和区别. 1. COM中的公寓 1.1 基本规则 公寓是COM组件的运行环境,日常生 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (6) -----第二章 实体数据建模基础之使用Code First建模自引用关系
2-5 使用Code First建模自引用关系 问题 你的数据库中一张自引用的表,你想使用Code First 将其建模成一个包含自关联的实体. 解决方案 我们假设你有如图2-14所示的数据库关系图的 ...
- Html5 绘制五星红旗
Html5+JavaScript 在Canvas上绘制五星红旗,具体思路如下图所示: 绘制思路在上图中已有说明,具体代码如下: <script type="text/javascrip ...