我想使用 Dio 在我的发布请求的授权标头中设置一个令牌。我尝试使用两个选项设置标题。而且两者都不起作用。第一种方式会引发错误,第二种方式不会将数据发送到服务器。从共享首选项添加授权令牌并将其作为发布请求上的标头发送的最佳方法是什么Dio()
当用户登录并访问它时,我将令牌保存在 SharedPreference 上:
String token = "";
@override
void initState() {
getToken();
}
void getToken() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
token = prefs.getString("token");
setState((){});
}
Run Code Online (Sandbox Code Playgroud)
第一种方法用于发送带有标头的数据:
Future<FormsModel> createEntry(
String id,
String formName,
String dataContent,
String dateCreated,
String dateUpdated,
String userLocation,
String imeI,
String updatedBy) async {
String apiUrl = "http://10.0.2.2:8080/api/v1/entry";
Dio().options.headers["Authorization"] = "Bearer $token";
await Dio().post(apiUrl, data: {
"id": id,
"formName": formName,
"dataContent": dataContent,
"dateCreated": dateCreated,
"dateUpdated": dateUpdated,
"userLocation": userLocation,
"imeI": imeI,
"updatedBy": updatedBy …Run Code Online (Sandbox Code Playgroud) 我对颤振还很陌生。我有一个要执行的网络调用。但在此之前,我需要检查设备是否具有互联网连接以及服务器 api 服务器是否可访问。我已设法检查互联网连接是否可用,但无法显示服务器无法访问的情况
这就是我到目前为止所做的:
login(username, password) async {
final String url = "http://10.0.2.2:8080/api/auth/signin"; // iOS
var responseJson;
try {
final response= await http.post(
url,
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'username': username,
'password': password,
}),
);
responseJson = _response(response);
} on SocketException {
throw FetchDataException('No Internet connection');
}
print(responseJson);
SharedPreferences prefs = await SharedPreferences.getInstance();
var parse = jsonDecode(responseJson.body);
await prefs.setString('username', parse["username"]);
await prefs.setString('message', parse["message"]);
await prefs.setString('accessToken', parse["accessToken"]);
return responseJson;
}
dynamic _response(http.Response response) {
switch (response.statusCode) …Run Code Online (Sandbox Code Playgroud) 我对 flutter 还很陌生,我正在学习有关如何构建 flutter 应用程序的教程。教练应用程序运行良好,但我的应用程序抛出错误
RenderFlex 底部溢出了 3.0 像素。相关的导致错误的小部件是:Column
和另一个错误
RenderFlex 底部溢出了 117 个像素。相关的导致错误的小部件是:Column
我的代码
import 'package:flutter/material.dart';
import 'models/job.dart';
import 'models/global.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext …Run Code Online (Sandbox Code Playgroud)