我正在构建一个颤振应用程序,它需要发送用户代理信息和http请求。我使用http dart软件包发送请求。如何获得用户代理字符串在颤振和使用它与http包?
发布于 2018-12-26 06:36:28
我是通过调用本地方法来做到这一点的。首先,您必须在android主活动中添加方法通道。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
new MethodChannel.MethodCallHandler() {
@Override
public void onMethodCall(MethodCall call, MethodChannel.Result result) {
if (call.method.equals("getUserAgent")) {
result.success(System.getProperty("http.agent"));
} else {
result.notImplemented();
}
}
});
}然后,可以调用getUserAgent()方法,如下所示
Future<String> _getUserAgent() async {
try {
return await platform.invokeMethod('getUserAgent');
} catch (e) {
return 'Unknown';
}
}发布于 2020-01-22 06:30:33
您可以使用flutter_user_agent库:代理,以跨平台的方式获得它。
import 'package:flutter_user_agent/flutter_user_agent.dart';
...
String ua = await FlutterUserAgent.getPropertyAsync('userAgent');发布于 2021-02-09 19:59:27
这是通过使用flutter_user_agent库:代理来实现的,如前所述
String _userAgent = await FlutterUserAgent.getPropertyAsync('userAgent');
final _response = await http.get(_url, headers: {
'Content-Type': 'application/json',
'Accept-Charset': 'utf-8',
'User-Agent': '${_userAgent.toLowerCase()}',
});https://stackoverflow.com/questions/53039049
复制相似问题