DEV Community

BC
BC

Posted on

Use dio in Flutter / Dart

We use dart's built-in HttpClient to call HTTP API:

HttpClient httpClient = HttpClient(); HttpClientRequest request = await httpClient.getUrl(uri); // ... 
Enter fullscreen mode Exit fullscreen mode

But using dio to do so is much easier. If you are Python developer, thinking this as the built-in urllib vs the requests lib. The latter one is much easier to use.

Let's do a quick demo of using thsi dio package.

1, Create a folder named "diotest", then create the pubspec.yaml file:

name: diotest environment: sdk: '>=2.10.0 <3.0.0' 
Enter fullscreen mode Exit fullscreen mode

2, Install the dio package:

$ dart pub add dio 
Enter fullscreen mode Exit fullscreen mode

3, Create main.dart and write code like this:

import 'package:dio/dio.dart'; void main() async { BaseOptions options = BaseOptions( baseUrl: "https://httpbin.org", connectTimeout: 3000, receiveTimeout: 3000, ); Dio dio = Dio(options); try { Response resp = await dio.get( "/get", queryParameters: {"search": "dio"}, ); print("Response:"); print("Status:\n${resp.statusCode}"); print("Header:\n${resp.headers}"); print("Data:\n${resp.data}"); } catch (e) { print("Exception: $e"); } } 
Enter fullscreen mode Exit fullscreen mode

All set, now just run it:

$ dart main.dart Response: Status: 200 Header: connection: keep-alive access-control-allow-credentials: true date: Fri, 17 Dec 2021 04:50:26 GMT access-control-allow-origin: * content-length: 306 content-type: application/json server: gunicorn/19.9.0 Data: {args: {search: dio}, headers: {Accept-Encoding: gzip, Host: httpbin.org, User-Agent: Dart/2.14 (dart:io), X-Amzn-Trace-Id: Root=1-61bc1712-57909160379aeca870fa551c}, origin: 67.83.137.85, url: https://httpbin.org/get?search=dio} 
Enter fullscreen mode Exit fullscreen mode

For more on sending POST / PUT / DELETE / Upload Files, you can just visit the example page

Reference

Top comments (0)