Flutter语言 - 服务器在Get请求中看不到UserAgent



我在一个flutter应用程序中发送get请求,我的服务器正在根据手机用户代理的数据发送响应,当我从本地应用程序发送请求时,没有问题-

示例:"Dalvik/2.1.0 (Linux;U;Android 10;Infinix X655C Build/QP1A.190711.020)">

但是当我在android手机上从我的flutter应用程序做同样的事情时,服务器会看到其他东西。示例:"Dart/2.16 (Dart:io)">

即使get请求在请求

中具有headers属性,也会发生这种情况这是颤振代码:

Future<bool> approvedData() async {
var serverUrl = "https://appsofksenia.com/app_data";
String userAgent = await FlutterUserAgent.getPropertyAsync('userAgent');
Map<String, String> headers = {
HttpHeaders.authorizationHeader: 'Basic $userAgent',
'Content-Type': 'application/json; charset=UTF-8',
'Accept': 'application/json',
"User-Agent": userAgent,
};
http.Response res = await http.get(Uri.parse(serverUrl),headers: headers);
if(res.statusCode == 200){
if(res.body.isNotEmpty) {
dynamic response = json.decode(res.body);
var serverResponse = PrivacyResponse.fromJson(response);
var serverAnswer = serverResponse.privacy;
if (serverAnswer == "data_change") {
return true;
} else {
return false;
}
}else{
return false;
}
}else{
return false;
}
}

flutter应用程序的调试

我通过使用fk_user_agent库解决了这个问题:https://pub.dev/packages/fk_user_agent

你可以创建这样一个方法:

Future<String> getUserAgent() async {
try {
await FkUserAgent.init();
var platformVersion = FkUserAgent.userAgent!;
return platformVersion;
} on PlatformException {
return "";
}
}

然后发送返回值和关键字"user-agent">

最新更新