Flutter開發 網絡請求

HttpClient(dart自有)

1.get
點擊請求按鈕獲取數據,解析數據獲取單詞展示到屏幕上。
請添加圖片描述

class MyState extends State {String info = "暫無數據";List<Widget> texts = [];void initState() {super.initState();}Widget build(BuildContext context) {void parseJson(var body) {List<Widget> wList = [];List data = jsonDecode(body)["data"];for (int i = 0; i < data.length; i++) {print(data[i]["word"]);Text text = Text(data[i]["word"]);wList.add(text);}setState(() {texts = wList;});}void getData() async {String url ="https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/flutter";var httpClient = HttpClient();var request = await httpClient.getUrl(Uri.parse(url));var response = await request.close();var body = await response.transform(utf8.decoder).join();if (response.statusCode == 200) {setState(() {info = body;});parseJson(body);}}return Scaffold(appBar: AppBar(title: Text("登錄"),centerTitle: true,backgroundColor: Colors.blue,foregroundColor: Colors.white,),body: ListView(children: texts),floatingActionButton: FloatingActionButton(onPressed: () {getData();},child: Text("請求"),),);}
}

2.post

  void postData() async {String url = "https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/q";HttpClient httpClient = HttpClient();HttpClientRequest request = await httpClient.postUrl(Uri.parse(url));// 設置請求頭request.headers.set('Content-Type', 'application/json; charset=UTF-8');Map<String, dynamic> pMap = {"random:": "q"};request.write(jsonEncode(pMap));HttpClientResponse response = await request.close();// 檢查響應狀態碼if (response.statusCode == HttpStatus.ok) {// 讀取響應內容final String responseBody = await response.transform(utf8.decoder).join();print('POST 響應數據: $responseBody');} else {print('請求失敗,狀態碼: ${response.statusCode}');}}

原生http請求庫(插件)

導入依賴

dependencies:http: ^1.4.0

代碼

import 'package:http/http.dart' as http;void httpGet() async {String url ="https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/flutter";var result = await http.get(Uri.parse(url));if (result.statusCode == HttpStatus.ok) {print(result.body.toString());}}//postvoid httpPost(var body) async {String url = "https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/q";var result = await http.post(Uri.parse(url), body: body);if (result.statusCode == HttpStatus.ok) {print(result.body.toString());}else{print(result.statusCode);}}

解析xml

<books><book id="101"><title>XML入門指南</title><author>李四</author><price>39.90</price><publisher>科技出版社</publisher></book><book id="102"><title>Web開發實戰</title><author>王五</author><price>59.00</price><publisher>電子工業出版社</publisher></book>
</books>
      xml.XmlDocument xmlDocument = xml.XmlDocument.parse(result.body);Iterable<xml.XmlElement> xmlElement = xmlDocument.findElements("books");Iterable<xml.XmlElement> books = xmlElement.single.findAllElements("book");books.forEach((element) {print(element.findElements("id").single.innerText);print(element.findElements("title").single.innerText);},);I/flutter ( 3477): 101
I/flutter ( 3477): XML入門指南
I/flutter ( 3477): 102
I/flutter ( 3477): Web開發實戰

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95695.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95695.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95695.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vscode中用python調用matlab的函數(環境安裝)

本實踐適用于WIN11-x64和ubuntu22.04-x64系統&#xff0c;其余系統和架構未驗證。 效果展示 1.環境要求 MATLAB Engine API for Python 的系統要求&#xff1a;參閱此官方文檔MATLAB 與 Python 的版本兼容性&#xff1a;參閱此官方文檔 2.安裝步驟 安裝Vscode&#xff08;不…

【數據分享】大清河(大慶河)流域上游土地利用

而今天要說明數據就是大清河&#xff08;大慶河&#xff09;流域上游土地利用。數據介紹大清河&#xff0c;又稱大慶河&#xff0c;作為海河流域的重要支流&#xff0c;其流域上游地區不僅是區域水資源調控的關鍵節點&#xff0c;更是生態保護與經濟發展的重要載體。以下從地理…

圖論——Djikstra最短路

原理解釋 首先解釋一下它大概的應用場景以及原理&#xff1a;現在有這么一張圖&#xff0c;圖上各點之間都有一定的邊權或者說是距離。給定你一個起點&#xff08;例如點1&#xff09;&#xff0c;讓你求這個點到圖上所有點的最短距離是多少&#xff1f; 這個問題比較平常&…

kafka初步介紹

Kafka角色介紹TopicTopic主題的意思&#xff0c;消費者必須指定主題用于的消息發送&#xff0c;生產者也必須指定主題用于消息的接收。topic只是邏輯上的劃分。partitionpartition是分區的意思&#xff0c;他的主要作用是將發送到一個topic的數據做一個劃分。如果有4個partitio…

windows10的vs2019編譯openssl靜態庫備忘

1、下載安裝openssl源碼2、官網下載安裝activeperl或Strawberry Perl。官網下載慢&#xff0c;網盤找找。使用中activeperl有些異常提示、缺模塊&#xff0c;最后使用了Strawberry Perl。3、安裝nasm。powershell使用choco install nasm -y 即可。powershell使用cd命令打開當前…

學習筆記與效率提升指南:編程、記憶與面試備考

在學習與工作中&#xff0c;高效的記錄習慣、針對性的記憶方法和實用的技能儲備&#xff0c;是提升效率的關鍵。本文結合編程學習、面試備考和英語單詞積累&#xff0c;整理一套可落地的學習思路&#xff0c;尤其適合編程初學者。 一、學習核心原則&#xff1a;高效優先&#x…

順豐面試題

1. 你擅長處理哪類問題推薦回答&#xff1a; "我比較擅長處理以下幾類前端問題&#xff1a;性能優化&#xff1a;包括加載優化&#xff08;代碼分割、懶加載&#xff09;、運行時優化&#xff08;減少重排重繪&#xff09;等復雜組件開發&#xff1a;如表單聯動、可視化圖…

Warmup_steps 設置經驗

文章目錄什么是 Warmup&#xff1f;實現示例科學設置 Warmup 的黃金法則直觀例子什么是 Warmup&#xff1f; Warmup 是一種學習率調度策略&#xff0c;在訓練初期逐步增加學習率&#xff08;LR&#xff09;&#xff0c;而不是直接使用目標學習率。它解決了兩個關鍵問題&#x…

vue一個超簡單的菜單欄伸縮示例

代碼<template><div class"container"><!-- 左側區域 --><div class"left-side" :style"{ width: leftWidth px }">左側內容</div><!-- 右側區域 --><div class"right-side" :style"{ l…

Spark學習(Pyspark)

&#xff08;1&#xff09;Spark基礎入門 ①什么是Spark Spark是一款分布式內存計算的統一分析引擎。其特點就是對任意類型的數據進行自定義計算。Spark可以計算&#xff1a;結構化、半結構化、非結構化等各種類型的數據結構&#xff0c;同時也支持使用Python、Java、Scala、R以…

PDF壓縮原理詳解:如何在不失真的前提下減小文件體積?

與直接刪除內容不同&#xff0c;良好的PDF壓縮能在大幅減小體積的同時&#xff0c;較好地保留原有文字清晰度和圖像質量&#xff0c;兼顧實用性與視覺效果。軟件操作十分直觀&#xff0c;僅需設置輸入文件與輸出路徑&#xff0c;點擊【開始壓縮】按鈕即可啟動處理。畫質壓縮等級…

從應用場景看國產化FPGA潛力,紫光同創研討會武漢·北京站回顧

八月&#xff0c;紫光同創 FPGA 技術研討會先后在武漢、北京舉行。作為紫光同創官方合作伙伴&#xff0c;ALINX 攜紫光同創 FPGA 開發板及行業解決方案亮相&#xff0c;與來自通信、工業控制、醫療、圖像視頻、消費電子等領域的近 200 位行業專家齊聚一堂&#xff0c;通過主題演…

安卓APK包體優化全攻略

目錄 正常默認打包流程&#xff08;以Android平臺為例&#xff09; 查看編輯器打包日志 壓縮圖片 壓縮網格模型 壓縮貼圖 壓縮音頻文件 只打64位包 最終大小 正常默認打包流程&#xff08;以Android平臺為例&#xff09; 準備工作&#xff1a; 確保已安裝最新版Unity H…

嵌入式學習日記(28)進程、線程

回收資源空間子進程回收策略1、wait阻塞回收&#xff1a;一般情況下父進程專門負責回收2、waitpid非阻塞回收&#xff1a;搭配輪詢方式回收3、不回收&#xff1a;子進程任務一致執行4、異步回收&#xff1a;子進程結束后通知父進程進行回收exec 函數族三種調用外部程序的方式#i…

測試用例的一些事項

為什么要寫測試用例&#xff1f;寫測試用例的原因是為了避免遺漏測試&#xff0c;我們要根據給的文檔將邏輯都表達出來&#xff0c;不能因為簡單而不寫&#xff0c;日后版本更新就知道自己哪些測了哪些沒測。在沒有文檔的時候測試用例該怎么寫&#xff1f;大家可以考慮安全測試…

當Java遇見AI:飛算驅動的個人博客介紹智能生成風暴

一、飛算JavaAI&#xff1a;重新定義個人開發的"智能魔法棒" 1.1 開發者需求變革&#xff1a;從"技術門檻"到"創意優先"的時代 在數字化浪潮席卷全球的今天&#xff0c;個人品牌建設已成為技術從業者、創業者乃至學生的剛需——無論是程序員分享…

小程序排名優化:用戶行為數據背后的提升密碼

用戶在小程序中的每一次點擊、每一次停留、每一次分享&#xff0c;都在產生著有價值的數據。這些看似零散的用戶行為數據&#xff0c;其實隱藏著提升小程序排名的密碼。平臺在判定小程序排名時&#xff0c;用戶行為數據是重要的參考依據&#xff0c;因為它直接反映了小程序對用…

【DSP28335 入門教程】深度解析中斷系統:三級架構與響應機制

大家好&#xff0c;歡迎來到我們的 DSP28335 深度解析系列。在之前的實戰中&#xff0c;我們通過 while(1) 循環和延時函數實現了各種控制&#xff0c;這種方式被稱為輪詢。但輪詢就像一個焦急的門衛&#xff0c;需要不停地去檢查每個門口是否有人&#xff0c;既浪費精力又效率…

代碼隨想錄二刷之“字符串”~GO

1.344. 反轉字符串 - 力扣&#xff08;LeetCode&#xff09; func reverseString(s []byte) {left : 0right : len(s)-1for left < right{s[left],s[right] s[right],s[left]leftright--}return } 感悟&#xff1a;還是go語法熟練程度的問題&#xff0c;需要注意的是&am…

(!萬字血書!)文本預處理:NLP 版 “給數據洗澡” 指南

好吧&#xff0c;我承認我是個標題黨&#xff01;(不這樣你會點進來享受這篇 通俗易懂 的好文章嗎&#xff1f;) 正經標題&#xff1a;文本預處理全流程:從基礎到實踐 &#xff08;屏幕前的你&#xff0c;帥氣低調有內涵&#xff0c;美麗大方很優雅… 所以&#xff0c;求…