记录下erlang中 用http下载文件

问题如题,这是在一个群里问的一个的问题。其实就是http的Server的上传下载的功能。庆亮回答了这个问题的解决方案。

ibrowse:start().
ibrowse:send_req("http://img1.gtimg.com/12/1293/129340/12934049_980x1200_0.jpg", [], get, [], [{save_response_to_file, true}]).
如正常返回:

也可以自行指定目标文件保存路径:ibrowse:send_req("http://img1.gtimg.com/12/1293/129340/12934049_980x1200_0.jpg", [], get, [], [{save_response_to_file, "/tmp/test.jpg"}]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

亮哥的回答简洁明了. 是如何解决的这个问题呢?

不错,正是用了ibrowse框架。那么什么是ibrowse呢?  它是http的客户端框架。

ibrowse is a HTTP client written in erlang.(ibrowse是一个使用Erlang写的HTTP客户端。)

项目地址:https://github.com/cmullaparthi/ibrowse

准备工作:

1、下载源代码

使用Git获取元代码,在终端执行命令:

git clone https://github.com/cmullaparthi/ibrowse.git

2、编译源代码

使用rebar构建工具编译源代码:

./rebar compile

编译成功,会在ebin文件夹下生成.beam和.app文件

(注意:这里在把项目的依赖项放到如:deps路径下,在rel下面的retool.config文件中也要添加对应的路径。如下图:)

要是不添加这个位置,依赖项是引用不到的。

尝试下:首先进入shell,./rel/new_push/bin/new_push attach

1> ibrowse:start().

下面截图:

看得到,把test.jpg图片放到了/opt/new_push/rel/files的路径下(具体放在哪儿可以根据实际去搞)。

具体见下图:

并查看下图片:

而这个ibrowse 和erlang自带的inets有什么利弊区别,当然也可以用inets去搞。

时间: 2024-08-30 11:53:49

记录下erlang中 用http下载文件的相关文章

android中使用Http下载文件并保存到本地SD卡

---恢复内容开始--- 1.AndroidMainfest.xml中设置权限 1 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 2 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission

实现在 .net 中使用 HttpClient 下载文件时显示进度

原文:实现在 .net 中使用 HttpClient 下载文件时显示进度 在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebClient 并不包含在 .net standard 当中.在 .net standard 中,要进行 http 网络请求,我们用得更多的是 HttpClient.另外还要注意的是,UWP 中也有一个 HttpClient,虽然

记录下工作中使用的pdf.js

在工作中遇到一个通过网页的形式浏览pdf文件以及图片的需求,图片简单,直接通过网页的形式打开这个图片的URL即可.而pdf这边,通过查询发现有一个名为pdf.js的神器. 简单介绍下,它可以在html中直接浏览pdf文件,pdf的每一页数据,通过H5的canvas进行解析,以及显示.其中还可以操作页数.滚动.打印.下载等功能.git上的地址为:http://mozilla.github.io/pdf.js/ 网上的文档资料很多,就不记录了,直接留存通用代码. <!DOCTYPE html> &

[转]windows下VS2010中lib与dll文件的生成与使用

原文地址:https://my.oschina.net/SysuHuyh5LoveHqq/blog/644622 近期在windows下开发了某个程序,需要将其生成静态文件(lib)以及动态库文件(dll),其中参考了不少帖子,有的讲得也不是很清楚明白,先将本人实践过的记录一下,供后期自己查询,也供各位大牛点评. 一.lib文件的生成与使用 1.lib的生成 相对来说,静态库文件还是比较容易生成和使用的,在代码上,貌似也不需要更改什么,举例说明: 头文件函数声明形式如下: extern bool

java中如何设置下载文件

如果想要设置某一url为下载文件的方法如下 需要设置文件响应类型,使用response.setContentType,比如jpeg格式的图片.如果想要访问该页面时出现下载保存的窗口,使用response.setHeader("Content-Disposition", "attachment;filename="+filename.getName())函数.也可以是pdf文件,或者其他格式的,如果想要查找浏览器可以识别什么格式的文件,需要到服务器的配置文件中找,比如

在浏览器中从FTP下载文件

1 public static class FTPHelper 2 { 3 /// <summary> 4 /// 得到特定FTP目录的文件列表 5 /// </summary> 6 /// <param name="uri">ftp://{username}:{password}@ftp.baidu.com/{folderName}</param> 7 public static List<String> ListFiles

Windows下使用PSCP从Linux下载文件

1. 先下载putty包,然后解压 https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip 2. 下载文件当前目录 PSCP.exe 用户名@Linux的IP地址:文件路径 . 原文地址:https://www.cnblogs.com/eagle6688/p/8297595.html

简单记录下HTTPS中的SSL

大概思路 大概思路是混合加密的方式,即对称加密方式混合非对称加密方式. 非对称加密会更加安全,功能也更强大,但他复杂而且速度慢. 对称加密速度快,但要保证这个公共密钥的正确性和真实性. 所以两者结合,在确定公共密钥的时候,采用非对称加密的方式来传递这个公共密钥,然后后面的交流的信息都用这个公共密钥来进行加密. 那又要怎么确定服务器的身份呢?如果是一个假的服务器,直接给了你一个假的公钥,那么一开始就错了啊. 这就要用到证书了,证书是这样的原理的,大概描述下: 1. 服务器把自己的公钥登陆到数字证书

win7下iis中配置php.ini文件

将php.ini-development配置文件重命名为php.ini配置文件即可.接着做如下配置操作: 1.打开php.ini配置文件,找到 12 ; On windows:; extension_dir = "ext" 修改为 12 ; On windows:extension_dir = "C:/php/ext" 表示指定PHP扩展包的具体目录,以便调用相应的DLL文件. 2.由于默认PHP并不支持自动连接Mysql,需开启相应的扩展库功能,比如php_mys