1. 程式人生 > >Flutter -------- 網路請求之HttpClient

Flutter -------- 網路請求之HttpClient

今天來說說Flutter中的網路請求,HttpClient網路請求,包含get,post

 

get

 var data;

  _get() async {
    Map newTitle;
    var responseBody;
    var url = 'https://jsonplaceholder.typicode.com/posts/1';
    var httpClient = new HttpClient();
    var request = await httpClient.getUrl(Uri.parse(url));
    var response = await request.close();
    if (response.statusCode == 200) {
      responseBody = await response.transform(utf8.decoder).join();
      responseBody = json.decode(responseBody);
      print(responseBody.toString());
      newTitle = responseBody;
      print("get:-------${newTitle}");
    } else {
      print("error");
      data = "null";
    }
    if (!mounted) return;

    //狀態管理(該控制的核心在於:回撥,更新資料在控制元件上)
    /**
     有三種方式:
      1、Widget自己管理State
      2、父類管理State
      3、混合管理
     */
    setState(() {
      data = newTitle['title'];
    });
  }

post

void _post() async {
    HttpClient httpClient = new HttpClient();

// queryParameters get請求的查詢引數(適用於get請求???是嗎???)
// Uri uri = Uri(
//     scheme: "https", host: "xxx.xxx.xxx.xxx", path: homeRegularListUrl);
// HttpClientRequest request = await httpClient.postUrl(uri);

    var url = "http://api.juheapi.com/japi/toh";
    HttpClientRequest request = await httpClient.postUrl(Uri.parse(url));

// 設定請求頭
  /*  request.headers.set("loginSource", "IOS");
    request.headers.set("useVersion", "3.1.0");
    request.headers.set("isEncoded", "1");
// Content-Type大小寫都ok
    request.headers.set('content-type', 'application/json');*/

    /// 新增請求體
    Map jsonMap = {'shopperId': 9356,'machineId':5117,'orderType':2,'orderId':108};

    Map<String, String> map1 = new Map();
    map1["v"] = "1.0";
    map1["month"] = "7";
    map1["day"] = "25";
    map1["key"] = "bd6e35a2691ae5bb8425c8631e475c2a";

    request.add(utf8.encode(json.encode(map1)));

    HttpClientResponse response = await request.close();
    String responseBody = await response.transform(utf8.decoder).join();
    if (response.statusCode == HttpStatus.ok) {
      print('請求成功');
      print(response.headers);//列印頭部資訊
      print("post------${responseBody}");
    }
  }

呼叫:

class HttpClientMain extends StatefulWidget {
  @override
  createState() => new HttpClientHttp();
}

class HttpClientHttp extends State<HttpClientMain> {
  @override
  Widget build(BuildContext context) {
    _get();
    _post();
    return Scaffold(
      appBar: new AppBar(
        title: new Text("net"),
      ),
      //body: new MyHomePage()
      body: new Center(
        child: new Text("$data"),
      ),
    );
  }
}

控制檯列印

get:

 

post:

相關推薦

Flutter -------- 網路請求HttpClient

今天來說說Flutter中的網路請求,HttpClient網路請求,包含get,post   get var d

Android HTTP協議請求網路(二)HttpClient方式

1 package com.example.m04_http01; 2 3 import org.apache.http.HttpEntity; 4 import org.apache.http.HttpResponse; 5 import org.apache.http.client.HttpC

Android網路請求OkHttp框架

首先宣告許可權 <uses-permission android:name="android.permission.INTERNET"/> 在build.gradle中加入 compile 'com.squareup.okhttp:okhttp:2.4.0' compile

網路請求urllib網路請求

urllib庫是Python中一個最基本的網路請求庫。可以模擬瀏覽器的行為,向指定的伺服器傳送一個請求,並可以儲存伺服器返回的資料。 urlopen函式: 在Python3的urllib庫中,所有和網路請求相關的方法,都被集到urllib.request模組下面了,以先來看下ur

Android 網路請求Xutils環境搭建

Xutils 在Android 開發中是一個比較老的網路請求框架,目前在市面上,仍然有一些老的專案在使用和維護. 本文給需要使用Xutils網路請求框架的朋友,提供一個快速搭建的程式碼參考: app的module build,gradle中 新增: compile 'org.xuti

flutter網路請求json

import 'dart:async'; import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:flutter/material.dart';//使用網路請求json c

Android 網路開發(一) okHttp網路請求快取控制Cache-Control

Cache-Control: Cache-Control指定請求和響應遵循的快取機制。在請求訊息或響應訊息中設定Cache-Control並不會修改另一個訊息處理過程中的快取處理過程。請求時的快取指令有下幾種: Public指示響應可被任何快取區快取。 Private指示對於單個

Android okHttp網路請求快取控制Cache-Control

前言:     前面的學習基本上已經可以完成開發需求了,但是在專案中有時會遇到對請求做個快取,當沒網路的時候優先載入本地快取,基於這個需求我們來學習一直okHttp的Cache-Control。      okHttp相關文章地址: Cache-Control:      Cache-Contro

Android okHttp網路請求Retrofit+Okhttp+RxJava組合

前言:     通過上面的學習,我們不難發現單純使用okHttp來作為網路庫還是多多少少有那麼一點點不太方便,而且還需自己來管理介面,對於介面的使用的是哪種請求方式也不能一目瞭然,出於這個目的接下來學習一下Retrofit+Okhttp的搭配使用。      okHttp相關文章地址: Retrof

Android okHttp網路請求檔案上傳下載

前言:    前面介紹了基於okHttp的get、post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天來實現一下基於okHttp的檔案上傳、下載。      okHttp相關文章地址: 檔案上傳: 1.)不帶引數上傳檔案

Android okHttp網路請求Get/Post請求

   前言:       之前專案中一直使用的Xutils開源框架,從xutils 2.1.5版本使用到最近的xutils 3.0,使用起來也是蠻方便的,只不過最近想著完善一下app中使用的開源框架,由於Xutils裡面包含的東西相對來說比較雜,有資料庫、圖片快取、註解、網路請求等等,秉著一個開源庫只處理一

Android okHttp網路請求Json解析

  前言:   前面兩篇文章介紹了基於okHttp的post、get請求,以及檔案的上傳下載,今天主要介紹一下如何和Json解析一起使用?如何才能提高開發效率?      okHttp相關文章地址:  關於Json解析:   本文的Json解析採用阿里巴巴的FastJson 解析,也可以採用Gso

安卓網路請求使用httpclient--post請求方式

一.首先確定URL地址,String url=" 輸入伺服器的URL地址" 二.獲得httpclient物件,不建議使用預設的構造方法,httpclient client=new chttpclien

微信小程式 網路請求設定合法域名

設定域名登入微信公眾號後臺小程式中設定→開發設定→伺服器設定必須設定域名,微信小程式才能進行網路通訊,不然會報錯如果設定好了合法域名,開發工具還提示不在合法域名列表中,因為在微信會有一段時間的快取,等一會可能就好了。還要在開發工具中重新整理一下,直到有資料顯示那就應該是沒問題

網路連線——HttpClient(doGet和doPost)

1.概述: 我們平時在開發Android應用的時候不可避免地都需要用到網路技術,而多數情況下應用程式都會使用HTTP協議來發送和接收網路資料。當然有時也用URLConnection。 Android系統中主要提供了兩種方式來進行HTTP通訊,HttpURLC

Java網路通訊HttpClient

HttpClient 是 Apache Jakarta Common 下的子專案,可以用來提供高效的、最新的、功能豐富的支援 HTTP 協議的客戶端程式設計工具包,並且它支援 HTTP 協議最新的版本和建議。在Android系統中內建了HttpClient。Android下

Flutter網路請求與JSON解析

本文介紹如何在Flutter中建立HTTP網路請求和對請求的json string進行型別解析. 網路請求 官方使用的是用dart io中的HttpClient發起的請求,但HttpClient本身功能較弱,很多常用功能都不支援。 建議使用dio 來發起網路請求,它是一個強大易用的dart http請求庫

發起http請求HttpClient 關於(發生一個或多個錯誤) 的問題

很多 sof 設置 mic 大並發 關於 manage 使用 發生 最近項目遇到一個問題,同樣的程序,再本地調試跑沒問題,但是放到服務器上跑,卻會出現各種超時。 查了查日誌,發現多數是這樣的一個錯誤 message:發生一個或多個錯誤。 經過一步步排查發現是HttpC

flutter從零開始搭建(三) 網路請求

專案還是在原來的基礎上搭建,具體的可以看上面的連線 這次,我們來介紹下網路請求,並且將請求到的資料設定到ListView列表中。老規矩,先來看下效果圖 頁面看起來不錯吧,在動手之前還是得說一下,首頁資料來自wanandroid提供,畢竟用了別人的

Flutter網路請求

Flutter之網路請求 一,介紹與需求 1.1,介紹 1,http一個可組合的,基於Future的庫,用於發出HTTP請求。包含一組高階功能和類,可輕鬆使用HTTP資源。它與平臺無關,可以在命令列和瀏覽器上使用。 2,Dart的功能強大的Http客戶端,支援攔截器,全域性配置,FormData,請求