记录下erlang中 用http下载文件
2015-06-23 15:00
585 查看
问题如题,这是在一个群里问的一个的问题。其实就是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构建工具编译源代码:
编译成功,会在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去搞。
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去搞。
相关文章推荐
- tcp的发送与接收缓冲区1
- python简单网络服务器
- TCP连接表1
- 对于TCP的TCB的相关疑惑???
- iOS网络请求下来的数据显示时出现的问题
- HTTP Content-type 与 AFNetworking
- OpenCV 神经网络
- HTTP和Socket连接的区别
- Android之Http通信——5.开发中遇到的一些问题
- TCP 连接断连问题剖析
- 笔记_网络05_《漫谈程序员系列:薪资,你是我不能言说的伤》
- HTTP返回代码 201 304 404 500等代表的含义
- 笔记_网络04
- 黑马程序员——网络编程
- 网络公共领域的功能与局限性
- tcp的相关队列:::
- TCP建立连接——连接请求块
- TCP三次握手和四次挥手协议
- Using cURL to automate HTTP jobs
- 关于TCP的几点疑惑???