错误调用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;
}10
相似问题