范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  简介
  dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外,我们在浏览器端另一个常用的操作就是使用XMLHttpRequest去做异步HTTP资源的请求,也就是AJAX请求。
  dart同样提供了类似JS中XMLHttpRequest的封装,其对应的类叫做HttpRequest,一起来看看在dart中怎么使用HttpRequest吧。 发送GET请求
  虽然现代的web APP被各种框架所封装,但是归根结底他还是一个AJAX的富客户端应用。我们通过各种异步的HTTP请求向服务器端请求数据,然后展示在页面上。一般来说数据的交互格式是JSON,当然也可以有其他的数据交互格式。
  AJAX中最常用的方式就是向服务器端发送get请求,对应的HttpRequest有一个getString方法:   static Future getString(String url,       {bool? withCredentials, void onProgress(ProgressEvent e)?}) {     return request(url,             withCredentials: withCredentials, onProgress: onProgress)         .then((HttpRequest xhr) => xhr.responseText!);   }
  注意,getString方法是一个类方法,所以直接使用HttpRequest类来调用: var name = Uri.encodeQueryComponent("John");         var id = Uri.encodeQueryComponent("42");         HttpRequest.getString("users.json?name=name&id=id")           .then((String resp) {             // Do something with the response.         });
  因为getString返回的是一个Future,所以可以直接在getString后面接then语句,来获取返回的值。
  当然,你也可以在async方法中使用await来获取返回值。 Future main() async {   String pageHtml = await HttpRequest.getString(url);   // Do something with pageHtml... }
  或者使用try catch来捕获异常: try {   var data = await HttpRequest.getString(jsonUri);   // Process data... } catch (e) {   // Handle exception... } 发送post请求
  GET是从服务器拉取数据,相应的POST就是通用的向服务器中提交数据的方法。在HttpRequest中,对应的方法是postFormData: static Future postFormData(String url, Map data,       {bool? withCredentials,       String? responseType,       Map? requestHeaders,       void onProgress(ProgressEvent e)?}) {     var parts = [];     data.forEach((key, value) {       parts.add("{Uri.encodeQueryComponent(key)}="           "{Uri.encodeQueryComponent(value)}");     });     var formData = parts.join("&");      if (requestHeaders == null) {       requestHeaders = {};     }     requestHeaders.putIfAbsent("Content-Type",         () => "application/x-www-form-urlencoded; charset=UTF-8");      return request(url,         method: "POST",         withCredentials: withCredentials,         responseType: responseType,         requestHeaders: requestHeaders,         sendData: formData,         onProgress: onProgress);   }
  从方法的实现上可以看到,默认情况下使用的Content-Type: application/x-www-form-urlencoded; charset=UTF-8, 也就是说默认是以form表单提交的形式进行的。
  在这种情况下,对于承载数据的data来说,会首先进行Uri.encodeQueryComponent进行编码,然后再使用&进行连接。
  下面是使用的例子: var data = { "firstName" : "John", "lastName" : "Doe" };         HttpRequest.postFormData("/send", data).then((HttpRequest resp) {           // Do something with the response.        });
  注意,postFormData中返回的是一个HttpRequest,虽然它叫做Request,但是实际上可以包含response的内容。所以直接使用他获取返回内容即可。  更加通用的操作
  上面我们讲解了get和form的post,从代码可以看到,他们底层实际上都调用的是request方法。request是一个更加通用的HTTP请求方法。可以支持 POST  ,PUT  ,DELETE  等HTTP操作。下面是request的方法定义:  static Future request(String url,       {String? method,       bool? withCredentials,       String? responseType,       String? mimeType,       Map? requestHeaders,       sendData,       void onProgress(ProgressEvent e)?})
  其中sendData可以是[ByteBuffer],[Blob], [Document], [String], 或者 [FormData] 等格式。
  responseType表示的是HttpRequest.responseType,是返回对象的格式,默认情况下是String,也可以是’arraybuffer’, ‘blob’, ‘document’, ‘json’, 或者 ‘text’。
  下面是一个是直接使用request的例子:         var myForm = querySelector("form#myForm");         var data = new FormData(myForm);         HttpRequest.request("/submit", method: "POST", sendData: data)           .then((HttpRequest resp) {             // Do something with the response.         }); 总结
  使用HttpRequest可以直接模拟浏览器中的Ajax操作,非常方便。 本文已收录于 http://www.flydean.com/21-dart-http/
  最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
  欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

第二批HarmonyOS3新机曝光,华为P60Pro赫然在列,花粉久等了麒麟芯片一直以来都成为华为旗舰机的灵魂配置,正因为有自研的麒麟芯片加持,所以大家普遍把华为看作是国产核心品牌的代表,即使面对三星和苹果,我们也可以很自豪地说我们有华为!但因为众所周自动续费岂能成坑人套路免费开通会员一分钱体验7天会员近日,山西的刘女士打开第三方支付平台账单时直言肉疼,此前曾短期使用的视频剪辑修图社交音乐等多个APP长期悄无声息通过第三方支付平台扣除银行卡里的钱。记中国移动联通电信三大运营商。哪家电话费更便宜?应邀回答本行业问题。中国的三大运营商之中,中国移动的手机资费相对贵一些。中国电信和中国联通的电话资费要便宜很多。中国的三大运营商之间的竞争比较激烈,做为竞争者的中国联通和中国电信的为什么中国移动公司的工作人员经常给你打电话推荐改流量套餐?主要有两个方面原因一是4G时代的不限流量卡太多了,网络承受不起,改流量套餐后不会再有不限流量套餐。二是5G任务指标需要,移动用户规模最大,目前的5G渗透率最低,为了完成5G渗透率指2003年陈进套取11亿经费,使中国芯片停滞13年,如今现状如何?陈进改革开放以来,中国经济科技飞速发展,高新技术产业如雨后春笋般竞相涌现,中国著名企业华为便是其中之一。在华为董事长任正非的带领下,在中国政策的扶持之下,在无数科研工作者日夜奋战下字节跳动今年7月后广告收入环比零增长,成立9年来首次据了解,字节跳动商业化收入正遭遇前所未有的挑战。接近字节跳动的知情人士透露,2021年7月后,字节广告收入每月环比零增长,这是其成立9年来首次出现的情况。目前,字节跳动的商业化部门帧彩视界之PseudoHDR为普通SDR设备用户提供HDR体验帧彩视界是微帧科技以高清视觉体验为核心打造的一款视频AI智能化产品。利用机器学习与深度学习技术,在画质增强HDR超高清处理等方向,打造了一系列解决方案。帧彩视界可应用于超高清视频内人民日报点名国产企业,用户不应该是被骗来的众所周知,随着移动互联网的普及,越来越多的用户都体验到了智能时代带给我们的便利。比如方便的移动支付足不出户的网络购物等等。不可否认,这些软件都给我们带来了很多的便利,但是与此同时,SpotlessA1管晶混血蓝牙综合功放简评Spotless是名杰引进的新品牌,采用多样化产品线经营的方式,旗下产品包括音箱功放线材音箱架等,而且还在持续增加中。这款A1是Spotless最新推出的综合功放,造型师早期的塔型79元起!华为5折换屏服务上线用智能手机最痛苦的是什么?最痛苦的手机摔地上发现屏幕碎了,这种痛不仅是心理上的,还是物理上,因为等一下就要为这块破碎的屏幕付钱维修跑售后了。现在智能手机的屏幕比较贵,特别是旗舰机。挖掘快递进村的发展潜力来源人民网人民日报国家邮政局公布的数据显示,今年1月至10月,全国快递服务企业业务量累计完成867。2亿件,同比增长34。7。其中,超过13的快递包裹在农村地区。这背后是不断加速的
转载!娱乐圈将会成为真正文化自信的一部分!大快人心本文转载新华社北京9月2日电中央宣传部印发通知,部署文娱领域综合治理工作以下是转载的内容新华社北京9月2日电针对流量至上饭圈乱象违法失德等文娱领域出现的问题,中央宣传部近日印发关于阿里正义被伸张,饭圈治理见成效本文所有观点仅代表作者个人意见同时本文作者对此文具有最终解释权。8月初的时候,发表类似的文章,连续十几天都通不过审核,也不知道为啥?最近,阿里巴巴的曾经的员工,现在被解雇的话题人物同类大学,意外之后,不同处理本文所有观点仅代表作者个人意见同时本文作者对此文具有最终解释权。最近十几天大学校园才开学之际热闹不断,前有兰州大学在校研究生在宿舍遇刺意外身故,后有前几天,对外经济贸易大学在校保研WEY玛奇朵诠释传承与创新日前,新一代混动SUVWEY玛奇朵正式发布官图,预示着WEY品牌智能混动时代即将到来。玛奇朵基于WEY品牌家族先锋张力美学概念,塑造未来科技感,同时又以敏锐青春的产品设计理念标签,不只做网红爆款更要做汽车圈的长红每一个品牌的出现,都曾被厂家寄予厚望,但像坦克这样承载了所有用户期待的品牌却并不多见。从首款车型上市,到品牌正式独立,坦克品牌仅用了五个月的时间,就创造了上市即巅峰的行业里程碑,以WEY玛奇朵诠释传承与创新日前,新一代混动SUVWEY玛奇朵正式发布官图,预示着WEY品牌智能混动时代即将到来。玛奇朵基于WEY品牌家族先锋张力美学概念,塑造未来科技感,同时又以敏锐青春的产品设计理念标签,不只做网红爆款更要做汽车圈的长红每一个品牌的出现,都曾被厂家寄予厚望,但像坦克这样承载了所有用户期待的品牌却并不多见。从首款车型上市,到品牌正式独立,坦克品牌仅用了五个月的时间,就创造了上市即巅峰的行业里程碑,以一封寄给的信这篇写给今日头条的的公开信,不知道能不能发表,只是单纯地翻看头条视频时,有些许感慨,想说给头条听听。9月5是中华慈善日,不知道有多少人知道这个节日,今天早上刷视频,看见一个勇敢的残高阶自动驾驶的量产车型摩卡预售17。984月19日,WEY品牌全球代言人WEY摩卡首席智能体验官姚安娜,空降上海车展智动WEY来摩卡专属日,携手全球首款智能汽车人WEY摩卡,为现场粉丝呈现了车展史上自动驾驶走秀,书写了其这鹰熬了4年没结果,华硕STRIXCLAW鼠标拆解大概在4年前,也就是2015年,华硕推出了STRIX猛禽系列,除了显卡主板之外,它的游戏外设系列(机械键盘鼠标耳机)也是格外的引人注意。大概是因为它的基于猫头鹰的强烈仿生学设计,带99g双模游戏鼠标,达尔优中国风鼠年特别版EM915Pro今年的春节来得早,我们感觉很多东西没来得及到手快递就停运了,包括下面这个。达尔优在2020春节前发布了一款鼠年特别版的鼠标,估计受到当前新冠病毒疫情的影响没办法在年后迅速升温,但产