Dart:
Wysyłanie żądania HTTP
Jak to zrobić:
Dart zawiera pakiet http
, który jest potężnym i wygodnym sposobem na pracę z zasobami HTTP. Najpierw należy go dołączyć do pliku pubspec.yaml:
dependencies:
http: ^0.13.3
Następnie zaimportuj go w swoim kodzie Dart, aby zacząć wysyłać żądania:
import 'package:http/http.dart' as http;
void main() async {
var url = Uri.parse('https://jsonplaceholder.typicode.com/todos/1');
var response = await http.get(url);
if (response.statusCode == 200) {
print('Treść odpowiedzi: ${response.body}');
} else {
print('Żądanie zakończone niepowodzeniem ze statusem: ${response.statusCode}.');
}
}
Przykładowy wynik dla udanego żądania może wyglądać tak:
Treść odpowiedzi: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
Dla bardziej złożonych żądań, takich jak żądania POST z ciałem JSON, zrobiłbyś to w następujący sposób:
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
var url = Uri.parse('https://jsonplaceholder.typicode.com/posts');
var response = await http.post(
url,
headers: {"Content-Type": "application/json"},
body: jsonEncode({
"title": 'foo',
"body": 'bar',
"userId": 1,
}),
);
if (response.statusCode == 201) {
print('Status odpowiedzi: ${response.statusCode}');
print('Treść odpowiedzi: ${response.body}');
} else {
print('Nie udało się utworzyć nowego wpisu. Status: ${response.statusCode}');
}
}
Przykładowy wynik dla żądania post może wyglądać tak:
Status odpowiedzi: 201
Treść odpowiedzi: {
"title": "foo",
"body": "bar",
"userId": 1,
"id": 101
}
Te przykłady prezentują podstawowe żądania HTTP GET i POST za pomocą pakietu http
w Dart. Pakiet ten pokrywa większość potrzeb związanych z wysyłaniem żądań HTTP, w tym bardziej złożone scenariusze z nagłówkami i zawartością ciała.