小编bla*_*ird的帖子

如何在flutter Dio post请求中的授权标头中设置令牌

我想使用 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)

authorization access-token dart flutter

2
推荐指数
1
解决办法
5883
查看次数

如果服务器无法访问,如何显示错误

我对颤振还很陌生。我有一个要执行的网络调用。但在此之前,我需要检查设备是否具有互联网连接以及服务器 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)

dart flutter

2
推荐指数
1
解决办法
2810
查看次数

RenderFlex 底部溢出了 117 个像素。相关的导致错误的小部件是:Column

我对 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)

dart flutter

1
推荐指数
1
解决办法
2857
查看次数

标签 统计

dart ×3

flutter ×3

access-token ×1

authorization ×1