错误调用TravelDao里 fecth() async 每次都是 提示 401 "msg" : "请先登录",每次都是这样,老师是哪里不对?

来源:10-9 动态Icon与富文本展示

weixin_慕圣4210927

2024-04-19

class TravelDao {
static Future fecth() async {
var url = Uri.parse(‘https://api.devio.org/uapi/ft/home’);
final response = await http.get(url, headers: hiHeader());
Utf8Decoder utf8decoder = const Utf8Decoder();
String bodyString = utf8decoder.convert(response.bodyBytes);

if (response.statusCode == 200) {
  var result = json.decode(bodyString);
  return TravelModel.fromJson(result);
} else {
  //如果是不是401的话抛出一个异常
  throw Exception(bodyString);
}

}
}

//这是header里里面的数据board-pass是有值的我登入是成功的
hiHeader() {
Map<String, String> header = {
‘auth-token’: ‘ZmEtMjAyMS0wNC0xMaiAyMToyddMjoyMC1mYQ==ft’,
‘course-flag’: ‘ft’,
‘board-pass’: LoginDao.getBoardingPass() ?? ‘’
};
return header;
}

写回答

1回答

CrazyCodeBoy

2024-04-22

boarding-pass拼写不对,可参考下这块课程源码中的实现
https://git.imooc.com/coding-741/trip_flutter/src/master/lib/dao/header_util.dart
///接口所需请求header信息,auth-token可从问答区获取
hiHeaders() {
  Map<String, String> header = {
    "auth-token": "ZmEtMjAyMS0wNC0xMaiAyMToyddMjoyMC1mYQ==ft",
    "course-flag": 'ft',
    "boarding-pass": LoginDao.getBoardingPass() ?? ""
  };
  return header;
}
1
0

慕课甄选-Flutter零基础极速入门到进阶实战

全新Flutter从入门到进阶,实战仿携程网App

732 学习 · 340 问题

查看课程