首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >%7B和%7D的URL

%7B和%7D的URL
EN

Stack Overflow用户
提问于 2021-03-05 13:41:07
回答 1查看 7K关注 0票数 0

我正在学习使用带有颤振的API,并尝试对此使用开放天气地图,但是,我的代码是在我在URL中使用的每个变量中插入这个%7B和%7D。

实际网址:

代码语言:javascript
复制
https://api.openweathermap.org/data/2.5/weather?lat=%7B-15.783783783783784%7D&lon=%7B-47.93345625648786%7D&appid=%7Bf0060b47028a54500c466c7288e41d31%7D

这就是我想要的:

代码语言:javascript
复制
https://api.openweathermap.org/data/2.5/weather?lat=-15.783783783783784&lon=-47.93345625648786&appid=f0060b47028a54500c466c7288e41d31

我的密码怎么了?

我的代码:

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'package:clima/services/location.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

const apiKey = 'f0060b47028a54500c466c7288e41d31';

class LoadingScreen extends StatefulWidget {
  @override
  _LoadingScreenState createState() => _LoadingScreenState();
}

class _LoadingScreenState extends State<LoadingScreen> {
  double latitude;
  double longitude;

  void getLocation() async {
    Location location = Location();
    await location.getCurrentLocation();
    latitude = location.latitude;
    longitude = location.longitude;
    getData();
  }

  void getData() async {
    var url = Uri.https('api.openweathermap.org', '/data/2.5/weather', {
      'lat': '{$latitude}',
      'lon': '{$longitude}',
      'appid': '{$apiKey}',
    });
    var response = await http.get(url);

    if (response.statusCode == 200) {
      String data = response.body;

      var temperature = jsonDecode(data)['main']['temp'];

      print(temperature);
    } else {
      print(response.statusCode);
      print(url);
    }
  }

  @override
  void initState() {
    getLocation();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold();
  }

  @override
  void deactivate() {
    super.deactivate();
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-05 13:49:42

在您的getData()函数中,尝试删除url参数周围的大括号,如下所示:

代码语言:javascript
复制
var url = Uri.https('api.openweathermap.org', '/data/2.5/weather', {
  'lat': '$latitude',
  'lon': '$longitude',
  'appid': '$apiKey',
});

或者,您可以像这样连接URL跟踪自己。

代码语言:javascript
复制
var baseUrl = 'https://api.openweathermap.org/data/2.5/weather?';
var appid = 'f0060b47028a54500c466c7288e41d31';
var latString = '-15.783783783783784';
var lonString = '-47.93345625648786';

var urlString =
    baseUrl + 'lat=$latString' + '&' + 'lon=$lonString' + '&' + 'appid=$appid';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66493623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档