使用GDAL获取网络数据
GDAL中提供了一个访问网络数据的接口,具体的帮助文档可以访问这里(http://gdal.org/cpl__http_8h.html)。不过前提是GDAL需要依赖一个第三方的开源库libcurl,libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。 具体可以访问libcurl的wikipedia,链接在这里。
好了,下面大概说明一下使用方法,首先使用CPLHTTPEnabled()函数来进行检测GDAL是否已经有libcurl来进行支持,然后使用下面的代码来获取URL返回的信息。(下面的地址是我的博客的头像图片URL)。
CPLHTTPResult *pRest = CPLHTTPFetch ("http://avatar.csdn.net/7/0/7/1_liminlu0314.jpg", NULL);
然后判断pRest释放为NULL,如果不为NULL说明获取信息成功,已经将获取的信息存储在pRest中。之后从pRest中取出内容就可以了。下面是我封装的一个小函数,可以用来获取网络的图片或者文件,然后存储到本地。
bool SaveUrl2File(const char* pszUrl, const char* pszFileName)
{if( CPLHTTPEnabled() != TRUE)return false;CPLHTTPResult *pRest = CPLHTTPFetch (pszUrl, NULL);if (pRest == NULL)return false;FILE *pFile = fopen(pszFileName, "wb");if (pFile == NULL)return false;fwrite( pRest->pabyData, sizeof( GByte ), pRest->nDataLen, pFile );fclose(pFile);CPLHTTPDestroyResult(pRest);CPLHTTPCleanup();return true;
}
使用很简单,比如使用这个下载一个图片,或者一个mp3,就可以使用下面的代码来进行。
bool bIsSuccess = SaveUrl2File("http://avatar.csdn.net/7/0/7/1_liminlu0314.jpg", "C:\\photo.jpg");
bIsSuccess = SaveUrl2File("http://music.charlottedann.com/songs/Safe%20And%20Sound.mp3
", " Safe & Sound Taylor Swift mp3");
上面一个是下载我的CSDN的头像,一个是下载《饥饿游戏》的片尾曲《Safe and Sound》,PS,很好听,推荐一下,呵呵。
使用GDAL获取网络数据相关推荐
- android—获取网络数据
取网络数据主要靠发交易(或者说请求,接口等),而这些交易由java中的网络通信,HttpURLConnection和HttpClient实现,以下是具体例子. 大家都知道,网络通信,发送请求有两种方式 ...
- 安卓 原生okhttp使用get与post获取网络数据
网址 https://square.github.io/okhttp/ 配置 依赖 在module的build.gradle中: implementation 'com.squareup.okhttp ...
- Swift实战-豆瓣电台(三)获取网络数据
原文:Swift实战-豆瓣电台(三)获取网络数据 观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboar ...
- Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)
Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...
- 【搬运自用】 用Python获取网络数据 -Python100天从新手到大师Day57(GitHub)
用Python获取网络数据 原作者:骆昊 https://github.com/jackfrued/Python-100-Days 更多内容欢迎查看并订阅专栏'Python从新手到大师'和'Pytho ...
- Arduino ESP32 获取网络数据(HTTP POST方式)
Arduino ESP32 获取网络数据(HTTP POST方式) 相关篇<Arduino ESP32 获取网络数据(HTTP GET方式)> <Arduino ESP32 获取网络 ...
- Arduino ESP32 获取网络数据(HTTP GET方式)
Arduino ESP32 获取网络数据(HTTP GET方式) 相关篇<Arduino ESP32 获取网络数据(HTTP POST方式)> <Arduino ESP32 获取网络 ...
- Android 使用Get请求获取网络数据(极速数据)
1.环境配置 android studio 2.3.3 java 16.0.1 1.1.配置Json库 需要准备的jar包:json-lib-2.4-kdj15.jar 第一步:拷贝需要用到的jar包 ...
- UITableView上下滚动卡顿(获取网络数据,下载图片之后)
今天遇到一个问题,从网络上,下载图片之后tableview上下滚动会很卡 通过上网查资料,找到解决办法 因为下载图片的时候是在主线程进行的 通过开辟一个子线程去下载图片 tableview上下滚 ...
最新文章
- 腾讯绝地求生手游席卷全球,104个国家地区IOS登顶
- 树莓派3b python3.6.1 SSL模块调用不起来的坑
- 39.原码、反码、补码的转换
- 批作业是小学老师的一大乐趣 | 今日最佳
- Maven笔记——maven下载与配置
- 基于NPOI的报表引擎——ExcelReport
- 案例:监听域对象的属性变更
- php连接数据库配置优化,小蚂蚁学习mysql性能优化(9)--操作系统配置优化--mysql配置文件优化...
- 研发管理和项目管理有哪些痛点?
- html5的canvas绘制迷宫地图
- 引领团队追求高绩效结果
- 证书服务器搭建与邮件签名加密
- 第049篇:VBA之合并单元格、取消合并单元格并保留原来的数据
- DB DBMS SQL 分别是什么?
- 如何在HTML中引用jQuery函数库
- 原子钟(atomic clock)
- 【JS基础】立即执行函数表达式(自执行函数)
- 预备作业:有关技能以及“做中学”
- 修复gnome3下chrome鼠标主题不正确的问题
- BinarySearchTree(二分查找树)
热门文章
- java中常量有初始化值吗,Java基础_变量、常量
- win10卸载db2_如何在Linux下干净卸载db2数据库
- java axis2 jar_Java axis2.jar包详解及缺少jar包错误分析
- 实验7-3-4 字符串替换 (15 分)
- PS5运行Linux,索尼发布最新驱动!PS5手柄现在已支持Linux系统
- 电脑管家pc版离线包_王国统治电脑版下载_王国统治游戏pc版下载[策略经营]
- C++动态内存管理好难怎么办?零基础图文讲解,小白轻松理解原理
- uva-10245-分治
- 如何正确上传一张图片?
- WSL2 下的 Docker 配置,使用网易云镜像 + 更改 docker 文件系统(否则无法 apt update)