1. 程式人生 > >Flutter -------- Http庫實現網路請求

Flutter -------- Http庫實現網路請求

第三方庫 http實現網路請求,包含get,post

 

http庫文件:https://pub.dev/packages/http

 

1.新增依賴



dependencies:
  http: ^0.12.0 #latest version

2.匯入庫



import 'package:http/http.dart' as http; //匯入前需要配置

get

var data;

  _fetchGet() async {
    Map newTitle;
    final response =
        await http.get('https://jsonplaceholder.typicode.com/posts/1');
    final responseJson = json.decode(response.body);
    print("請求成功 ---------- "+responseJson.toString());
    newTitle = responseJson;

    setState(() {
      data = newTitle['title'];
      print("title====" + data);
    });
  }

post

void _httpPost() async {
    //頭部
    var headers = Map<String, String>();
    headers["loginSource"] = "IOS";
    headers["useVersion"] = "3.1.0";
    headers["isEncoded"] = "1";
    headers["bundleId"] = "com.nongfadai.iospro";
    headers["loginSource"] = "IOS";
    headers["Content-Type"] = "application/json";

    //引數

    Map params = {'v': '1.0','month':'7','day':'25','key':'bd6e35a2691ae5bb8425c8631e475c2a'};

    // 巢狀兩層都可以,但是具體哪個好還有待確認????
    var jsonParams = utf8.encode(json.encode(params));
    // var jsonParams = json.encode(params);

    var httpClient = http.Client();

    var uri = Uri.parse("http://api.juheapi.com/japi/toh");

    http.Response response =
    await httpClient.post(uri, body: jsonParams, headers: headers);

    if (response.statusCode == HttpStatus.ok) {
      print('請求成功');
      print(response.headers);//列印頭部資訊
      print("post------${response.body}");
    } else {
      print('請求失敗 code 碼${response.statusCode}');
    }
  }

呼叫:

class HttpMain extends StatefulWidget {
  @override
  createState() => new HttpPage();
}

class HttpPage extends State<HttpMain> {

  @override
  Widget build(BuildContext context) {
    _fetchGet();
    _httpPost();
    return new MaterialApp(
      title: 'Fetch Data Example',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Fetch Data Example'),
        ),
        body: new Center(
          child: new Text("$data"),
        ),
      ),
    );
  }
}

控制檯

get

 

post

相關推薦

Flutter -------- Http實現網路請求

第三方庫 http實現網路請求,包含get,post   http庫文件:https://pub.dev/packa

Flutter -------- Http 網路請求封裝(HttpController)

http庫 再次封裝的網路請求類 HttpController   1.新增依賴 dependencies:

Android RxJava 實戰系列:優雅實現 網路請求巢狀回撥

轉自-----http://blog.csdn.net/carson_ho/article/details/78315696,請為大神打call 前言 Rxjava,由於其基於事件流的鏈式呼叫、邏輯簡潔 & 使用簡單的特點,深受各大 Android

Android RxJava 實戰講解:優雅實現 網路請求輪詢

轉自-----http://blog.csdn.net/carson_ho/article/details/78256466 前言 Rxjava,由於其基於事件流的鏈式呼叫、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發者的歡迎。

Swift使用Alamofire實現網路請求

  Alamofire是一個用Swift編寫的HTTP網路庫,由此前熱門開源專案AFNetworking的的作者mattt開發,可非常簡單地用於非同步網路通訊。 要獲取最新版本的 Alamofire,前往https://github.com/Alamofire/Alamofire然後單擊網頁右邊

iOS開發之HTTP與HTTPS網路請求

HTTP是網際網路中應用最為廣泛的一種網路協議,在進入正文之前,先解釋什麼是網路協議?網路協議為計算機網路中進行資料交換而建立的規則、標準或約定的集合。網路協議是由以下三個要素組成:語義、語法、時序。 (1) 語義 語義是解釋控制資訊每個部分的意義。它規定了需要發出何種控制資訊,

OKHTTP-RecyclerView實現網路請求資料

build.gradle中匯入需要依賴 implementation ‘com.google.code.gson:gson:2.8.5’ implementation ‘com.android.support:design:27.1.1’ compile ‘cn.yipianfengye

解析Node.js通過axios實現網路請求

本次給大家分享一篇node.js通過axios實現網路請求的方法,寫的十分的全面細緻,具有一定的參考價值,對此有需要的朋友可以參考學習下。如有不足之處,歡迎批評指正。 1、使用Npm 下載axios npm install --save axios var update_u

iOS NSURLSession 實現網路請求-檔案下載-上傳-後臺下載

 *  會話NSURLSession     NSURLConnection通過全域性狀態來管理cookies, 認證資訊等公共資源, 如果兩個連線需要使用不同的資源配置情況時就無法解決,     這個問題在NSURLSession可以解決, NSURLSession同

Android:RxJava 結合 Retrofit 優雅實現 網路請求輪詢

前言 Rxjava,由於其基於事件流的鏈式呼叫、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發者的歡迎。 RxJava如此受歡迎的原因,在於其提供了豐富 & 功能強大的操作符,幾乎能完成所有的功能需求 今天,我將為

[Swift通天遁地]四、網路和執行緒-(4)使用Alamofire實現網路請求

本文將演示如何使用第三方庫實現網路請求服務。 首先確保在專案中已經安裝了所需的第三方庫。 點選【Podfile】,檢視安裝配置檔案。 1 source 'https://github.com/CocoaPods/Specs.git' 2 platform :ios, '12.0' 3 use_

使用retrofit2.0實現網路請求post和get請求

例項程式碼於百度雲-一些androiddemo compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareu

[HTTP那些事]網路請求API

在Android上,原生API有兩個,HttpUrlConnection和HttpClient,它們對封裝Socket進行封裝,讓HTTP請求變得簡單。這應該也算框架吧? 想象下,如果沒有HttpUrlConnection和HttpClient,一次性的API請求得有多麻煩。 現在,我們又多了一種OkHt

Retrofit2+Rxjava2+OKHttp3+RxAndroid 實現網路請求的demo案例

在之前的專案中一直都用著比較老的網路框架,比如volly,okgo,okhttp等等,平時寫demo 的時候偶爾也會用到新的框架拿來練練手,這兩天寫了一個關於retrofit2的案例,分享出來。 大牛們恐怕已經寫到爛的了,有不足請多多指教。 demo開始前,先匯

RxJava2+Retrofit2實現網路請求和解析封裝

半年多前寫過一篇用Retrofit2請求網路和解析的部落格,Retrofit2的簡單應用與封裝,不過當時其實還是遺留了不少細節問題沒有處理,比如如果有公共引數放Header裡面怎麼處理,請求過程中想顯示進度框怎麼處理,退出時要退出網路請求怎麼處理等等,這兩天看了下RxJav

Android:RxJava 結合 Retrofit 全面實現 網路請求出錯重連

前言 Rxjava,由於其基於事件流的鏈式呼叫、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發者的歡迎。 RxJava如此受歡迎的原因,在於其提供了豐富 & 功能強大的操作符,幾乎能完成所有的功能需求 今天,我將為

實現網路請求時特定的載入動畫(幀動畫)

第一篇部落格,有點小小的激動。有些做過的東西當時可能記得很清楚,但是時間久了就會慢慢忘記,所以才決定開始記錄一些。先寫個最簡單的載入動畫。首先來看一下效果圖,就如中間哪裡書翻頁的效果。此動畫是用幀動畫來實現的。幀動畫是順序播放一組預先定義好的圖片,類似與電影播放。系統提供了A

使用Retrofit進行Http、Https網路請求(快速上手)

1.配置gradle //註解包 compile 'com.jakewharton:butterknife:7.0.0' //Retrofit2所需要的包//這裡需要值得注意的是匯入的retrofit2包的版本必須要一致,否則就會報錯compile 'com.squareu

RxJava+Retrofit2+MVP實現網路請求

上一遍部落格介紹了RxJava+Retrofit2的使用。在前段時間,刷招聘簡歷的時候,發現有一部分的公司會要求MVP模式的理解和具體使用。在現在越來越複雜的業務,我們的Activity的負擔也是越來越大,因此接著這篇我結合MVP模式來介紹一下自己對RxJava

Retrofit + Rxjava + RxAndroid實現網路請求

之前自己實現了一個新聞類閱讀APP,最近想使用當下流行的Retrofit + Rxjava + RxAndroid + MVP架構來重構一下,本文以每日一文作為資料來源API做一個簡單的示例,來介紹一下如何使用Retrofit + Rxjava + RxAndr