如何解决无法从 Flutter 中的 Open Weather API 获取数据
我的结果
源代码
载入画面
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:clima/services/location.dart';
import 'package:http/http.dart'as http;
class LoadingScreen extends StatefulWidget {
@override
_LoadingScreenState createState() => _LoadingScreenState();
}
class _LoadingScreenState extends State<LoadingScreen> {
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
void getlocation()async{
Location location=Location();
await location.getcurrentlocation();
print(location.lat);
print(location.long);
}
void getdata()async{
http.Response response = await http.get(Uri.parse
('samples.openweathermap.org/data/2.5/forecast?q=London,us&mode=xml&appid=b6907d289e10d714a6e88b30761fae22')
);
if (response.statusCode == 200) {
String data = response.body;
print(data);
} else {
print(response.statusCode);
}}
Widget build(BuildContext context) {
getlocation();
getdata();
return Scaffold(
);
}
}
获取当前位置方法
import 'package:geolocator/geolocator.dart';
class Location{
double long;
double lat;
Future<void> getcurrentlocation() async {
try {
Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.low);
lat = position.latitude;
long= position.longitude;
} catch (e) {
}
}
}
我想要这个结果(https://samples.openweathermap.org/data/2.5/weather?lat=35&lon=139&appid=b6907d289e10d714a6e88b30761fae22) 但无法得到这个结果。你能告诉我我哪里错了
解决方法
您必须将 https://
添加到您的网址。
像这样:
Uri.parse('https://samples.openweathermap.org/data/2.5/weather?lat=35&lon=139&appid=b6907d289e10d714a6e88b30761fae22');
此外,请始终以文本而非图片形式发布您的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。