免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2907 | 回复: 5
打印 上一主题 下一主题

Mojo::UserAgent 使用问题 [复制链接]

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-09 15:08 |只看该作者 |倒序浏览
  1.   my $tx = $ua->post(
  2.     'http://example.com' => {DNT => 1} => form => {a => 'b'});
复制代码
第一个引用{DNT=>1}代表Header
第二个是 body 的参数
如果body包含json数据和一张图片,请问该如何写啊?@iakuf

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
3 [报告]
发表于 2013-05-10 14:00 |只看该作者
本帖最后由 iakuf 于 2013-05-10 14:20 编辑

回复 1# 只是一个红薯


body 在 POST 时包含 json 的写法是:

  1. my $tx = $ua->post(
  2.     'http://kraih.com',
  3.     json => {
  4.         a => 'b'
  5.     }
  6. );
复制代码
body 在 POST 时包含文件的写法是:
  1.   
  2. my $tx = $ua->post(  
  3.     'http://example.com',
  4.     form => {
  5.         mytext => {file => '/foo.txt'}
  6.     }
  7. );
复制代码
Mojolicious::Guides::Cookbook 中有讲到,另外 Mojo::UserAgent::Transactor 是实现这个类所调用的方法。

Mojo::UserAgent 很全面的功能,基本 Web 操作的有了它,不需要其它的都能搞定,比如你还想下载时自动给东西存成文件,他都提供现成的 Util 给你用,可以直接调用 $tx->res->content->asset->move_to('mojo.tar.gz');

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
4 [报告]
发表于 2013-05-10 15:23 |只看该作者
谢谢回复,我的意思是在一个body里面,包含json,附件图片或声音转化成字节形式附加在json后面,header在传图片或声音的长度。在服务器,我在用content-length减去附件长度得到json长度,然后在解析json。回复 3# iakuf


   

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
5 [报告]
发表于 2013-05-10 15:42 |只看该作者
回复 4# 只是一个红薯
你这个是在 HTTP 的基础上自定义协议和 Mojo::UserAgent 没关。


   

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
6 [报告]
发表于 2013-05-13 14:36 |只看该作者
  1.   my $tx = $ua->post($url =>{"Attach_Length"=>length($zhijie)}=>
  2.   "$json.$zhijie");
复制代码
直接这样就行了,开始没表述清楚。图片从文件句柄读
  1. By default all filehandles operate on bytes, but for example if the filehandle has been opened with the ":utf8" I/O layer (see "open", and the "open" pragma, open), the I/O will operate on UTF-8 encoded Unicode characters, not bytes.
复制代码
回复 5# iakuf


   

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
2 [报告]
发表于 2013-05-10 02:35 |只看该作者
写不出来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP