Flutter开发之——网络请求-http
在Flutter中,我们可以使用http库来进行网络请求。下面是一个简单的例子,展示了如何使用http.get方法来发送一个GET请求。
首先,你需要在你的pubspec.yaml文件中添加http库:
dependencies:
flutter:
sdk: flutter
http: ^0.13.3 # 添加http库
然后,你可以使用以下代码来发送一个GET请求:
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('HTTP Get Example'),
),
body: Center(
child: FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data);
} else if (snapshot.hasError) {
return Text("${snapshot.error}");
}
// By default, show a loading spinner.
return CircularProgressIndicator();
},
),
),
),
);
}
Future<String> fetchData() async {
final response =
await http.get('https://jsonplaceholder.typicode.com/posts/1');
if (response.statusCode == 200) {
// If the server did return a 200 OK response,
// then parse the JSON.
return response.body;
} else {
// If the server did not return a 200 OK response,
// then throw an exception.
throw Exception('Failed to load post');
}
}
}
在这个例子中,我们使用了FutureBuilder来处理异步网络请求。当请求完成时,我们根据结果显示不同的Widget。如果请求成功,我们将返回响应体(response body),它是一个JSON字符串。如果请求失败,我们抛出一个异常。
这只是一个简单的GET请求示例。Flutter的http库同样支持POST请求和其他HTTP方法,你可以根据需要进行使用。
评论已关闭