游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

dart系列之浏览器中的舞者,用dart发送HTTP请求

  简介
  dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外,我们在浏览器端另一个常用的操作就是使用XMLHttpRequest去做异步HTTP资源的请求,也就是AJAX请求。
  dart同样提供了类似JS中XMLHttpRequest的封装,其对应的类叫做HttpRequest,一起来看看在dart中怎么使用HttpRequest吧。发送GET请求
  虽然现代的webAPP被各种框架所封装,但是归根结底他还是一个AJAX的富客户端应用。我们通过各种异步的HTTP请求向服务器端请求数据,然后展示在页面上。一般来说数据的交互格式是JSON,当然也可以有其他的数据交互格式。
  AJAX中最常用的方式就是向服务器端发送get请求,对应的HttpRequest有一个getString方法:staticFutureStringgetString(Stringurl,{bool?withCredentials,voidonProgress(ProgressEvente)?}){returnrequest(url,withCredentials:withCredentials,onProgress:onProgress)。then((HttpRequestxhr)xhr。responseText!);}
  注意,getString方法是一个类方法,所以直接使用HttpRequest类来调用:varnameUri。encodeQueryComponent(John);varidUri。encodeQueryComponent(42);HttpRequest。getString(users。json?namenameidid)。then((Stringresp){Dosomethingwiththeresponse。});
  因为getString返回的是一个Future,所以可以直接在getString后面接then语句,来获取返回的值。
  当然,你也可以在async方法中使用await来获取返回值。Futurevoidmain()async{StringpageHtmlawaitHttpRequest。getString(url);DosomethingwithpageHtml。。。}
  或者使用trycatch来捕获异常:try{vardataawaitHttpRequest。getString(jsonUri);Processdata。。。}catch(e){Handleexception。。。}发送post请求
  GET是从服务器拉取数据,相应的POST就是通用的向服务器中提交数据的方法。在HttpRequest中,对应的方法是postFormData:staticFutureHttpRequestpostFormData(Stringurl,MapString,Stringdata,{bool?withCredentials,String?responseType,MapString,String?requestHeaders,voidonProgress(ProgressEvente)?}){varparts〔〕;data。forEach((key,value){parts。add({Uri。encodeQueryComponent(key)}{Uri。encodeQueryComponent(value)});});varformDataparts。join();if(requestHeadersnull){requestHeadersString,String{};}requestHeaders。putIfAbsent(ContentType,()applicationxwwwformurlencoded;charsetUTF8);returnrequest(url,method:POST,withCredentials:withCredentials,responseType:responseType,requestHeaders:requestHeaders,sendData:formData,onProgress:onProgress);}
  从方法的实现上可以看到,默认情况下使用的ContentType:applicationxwwwformurlencoded;charsetUTF8,也就是说默认是以form表单提交的形式进行的。
  在这种情况下,对于承载数据的data来说,会首先进行Uri。encodeQueryComponent进行编码,然后再使用进行连接。
  下面是使用的例子:vardata{firstName:John,lastName:Doe};HttpRequest。postFormData(send,data)。then((HttpRequestresp){Dosomethingwiththeresponse。});
  注意,postFormData中返回的是一个HttpRequest,虽然它叫做Request,但是实际上可以包含response的内容。所以直接使用他获取返回内容即可。更加通用的操作
  上面我们讲解了get和form的post,从代码可以看到,他们底层实际上都调用的是request方法。request是一个更加通用的HTTP请求方法。可以支持POST,PUT,DELETE等HTTP操作。下面是request的方法定义:staticFutureHttpRequestrequest(Stringurl,{String?method,bool?withCredentials,String?responseType,String?mimeType,MapString,String?requestHeaders,sendData,voidonProgress(ProgressEvente)?})
  其中sendData可以是〔ByteBuffer〕,〔Blob〕,〔Document〕,〔String〕,或者〔FormData〕等格式。
  responseType表示的是HttpRequest。responseType,是返回对象的格式,默认情况下是String,也可以是’arraybuffer’,‘blob’,‘document’,‘json’,或者‘text’。
  下面是一个是直接使用request的例子:varmyFormquerySelector(formmyForm);vardatanewFormData(myForm);HttpRequest。request(submit,method:POST,sendData:data)。then((HttpRequestresp){Dosomethingwiththeresponse。});总结
  使用HttpRequest可以直接模拟浏览器中的Ajax操作,非常方便。本文已收录于http:www。flydean。com21darthttp
  最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
  欢迎关注我的公众号:程序那些事,懂技术,更懂你!

魅族新品曝光,曾经的那个精致它还能回来吗?4月17日,魅族科技微博分享了魅族17的正面定妆照,并表示将于4月22日公布其邀请函和发布时间,魅族官网也上线了相关介绍。照片中可以看出,魅族依旧采用其特色的家族式超窄边……技术让AI的声音更加自然真实AI预测大脑真实年龄图灵周报图灵周报:精选AI行业一周大事件,从良莠不齐的行业资讯中挑选出最有价值的信息,配上专业点评,值得你细读、品味。01Windows11正式版将10月5日发布8月31日……绽放无边界,OPPO主题设计大赛正在招募优秀设计合伙人6月23日,OPPO主题设计大赛正式开启招募。OPPO通过大赛招募优秀设计合伙人,共同探讨科技与艺术人文的智美融合,挖掘个性化主题设计与壁纸设计的艺术价值和商业价值,为OPPO……探索NOMONDAY的腕间乐趣,与您一起摆脱忧郁的星期一NOMONDAY香港原创手表品牌,以独特新颖的创意风格,风靡日本、韩国、中国台湾。不被定义的NOMONDAY星期一是一周工作日的开始,也是大部分人重复例行性工作的一……大学生寒假追剧听歌利器,酷狗M1L有线耳机默契适配还有一个多月的时间,大学生们就要迎来翘首企盼的寒假了。期末考试结束后,有很多大学生会选择在家里听歌、追剧、玩游戏,此时除了要有手机、平板、电脑等设备外,更少不了一款提升聆听体验……两人用小程序卖菜,上线初期就达近300日订单,他是怎么做的?在月斧山,有一位救死扶伤的医生,和一位种菜能手,两人为了让更多人吃到绿色健康的蔬菜,搭建了小程序,竟有了出乎意料的收获。案例说明两人经营着一家位于重庆市大足宝兴镇的……双碳目标下,盛能杰全新单相单路逆变器完成SNEC2021首秀6月3日,为期三天的SNEC第十五届(2021)国际太阳能光伏与智慧能源(上海)展览会暨论坛在上海新国际博览中心开幕。来自全球太阳能光伏与储能行业顶级公司的超1700家参展企业……车险的生意不好做了保费增速下滑,承保亏损,2020年,于财险公司来说,是难捱的一年。根据银保监会公布的保险业经营数据,2020年保险业收入原保费4。53万亿元,同比增长6。12。其中,财产……React实战002快速入门实例HelloReact在第一篇我们顺利的搭建了React项目并简单的了解了React项目的目录结构,这里先不用管其他的文件我们主要看index。html(该文件在public目录中)和index。j……iPhone13发布iPhone14曝光,现售旗舰闻声沦为百9月15日凌晨,苹果秋季发布会正式召开,iPhone13系列问世。和以前公开的信息一样,iPhone13有着和iPhone12系列差不多的设计和尺寸。主要区别在于,刘海的……年轻人第一台小米智能电动汽车!预计10万起,三年后发布?近日,据36氪报道,多位接触到某零部件巨头的相关人士透露,小米汽车首款车型将于2024年上半年发布。此后三年,每年推出一款新车,三年的总销量要达到90万辆。对此消息,小米集团表……名企头条TikTok收购案至多300亿美元印度已禁用小米浏览微软或三周内谈妥TikTok交易收购价格至多300亿美元据知情人士透露,微软与字节跳动正在就收购短视频应用TikTok美国业务事宜进行谈判,并希望在未来三周内达成协议,最……
netflix十大神剧,netflix十大高分剧豆瓣Netflix(网飞)十大神剧,netflix十大高分剧你看过的有哪些呢?今天小编整理了netflix十大神剧排名,注意是不分先后的,每一部都保准让你看到酸爽的netflix剧……生活像阳光一样灿烂好看吗及演员表介绍近段时间以来,电视剧《生活像阳光一样灿烂》正在热播当中,这部剧的剧情是相对比较喜剧的,《生活像阳光一样灿烂》这部剧好看吗?《生活像阳光一样灿烂》演员表介绍,一起来看一下。1生活……9月即将发布的五款新机,配置信息已曝光,华为小米Vivo均有时间已经来到了9月份,各大手机厂商的新机发布并没有停止,依然在争相发力抢夺手机市场,自骁龙888Plus芯片发布后,旗舰机型有了新的升级点,华为小米Vivo均有新机,部分机型已……东方不败死了吗东方不败是什么教,东方不败是谁杀的东方不败死了吗:东方不败是什么教,东方不败是谁杀的东方不败死了吗,在金庸的小说《笑傲江湖》经过多次改编之后,里面颇受争议的一个人便是东方不败。那么最后东方不败死了吗?在原……iOS15Beta8发布今天凌晨苹果发布了iOS15Beta8,本次的版本号为19A5340a。距上次发布仅6天的时间,让我们一起看看都更新了什么呢?自定义icloud电子邮箱域名,可以对icl……如果有一天我将会离开你上映时间,如果有一天我将会离开你是什么爱情电影《如果有一天我将会离开你》选择在3月14日上映,来约定进行到春天之中的白色情人节时候再相见,过后把背景离乡的人产生多种事情,更相信缘分相系的人,终将能重逢了。1如果有一……一季度全球智能手机出货量排名出炉,三星再次登顶,小米杀入前三随着2021年第一季度的结束,不少调研机构都发布了相关的市场数据报告。除了发布国内市场相关的手机领域信息外,调研机构Canalys也在近日发布了全球智能手机市场的第一季度……OPPO电视销量惨淡,线上市场为何被小米荣耀碾压?荣耀和OPPO电视没见过,不方便评论。但小米电视买了用了几十台(含亲朋的)。它质量很好,性价比最高,操作最简单,实用功能最多。所以,去年全国销量第一。荣耀有电……朱锁锁叶总是父女关系吗流金岁月蒋南孙跟叶总什么关系随着流金岁月剧情的不断推进,开始有更多的观众好奇朱锁锁与叶谨言的关系了,他俩到底是什么关系呢?在流金岁月里面朱锁锁是倪妮饰演,剧中的朱锁锁非常爱财确但她非常的真实,试问天底下有……半妖司藤单志刚是好人吗?司藤沈银灯为什么和男主初恋一样半妖司藤里面的单志刚行为诡异,奇奇怪怪的,引起了观众的注意,有些朋友觉得单志刚是坏人,而有些观众则认为单志刚是好人,那半妖司藤单志刚是好人吗?司藤沈银灯为什么和男主初恋一样?我……司藤西竹什么关系?半妖司藤西竹结局是什么司藤小说最后司藤给秦放留下了西竹,让秦放好好照顾西竹,也是为了让西竹陪着秦放,那么司藤西竹什么关系?半妖司藤西竹结局是什么?下面昕薇小编带大家了解下详情。1司藤西竹什么关系……开发酒店小程序的优势酒店小程序的优势主要有以下几个:1、提升酒店曝光率对于酒店行业的企业和商家而言,要想提升入住率,就需要让更多的人知道自己、了解自己。而小程序就可以帮助酒店行业的企业……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网