【发布时间】:2019-04-04 17:04:24
【问题描述】:
我正在使用 http Dart package 向 MapQuest 静态地图 API 发送 GET 请求以获取图像。但是,对这个请求的响应直接返回一个图像,而不是一个Uri,或者我做错了什么。
你能帮我显示收到的图像吗?
这里是请求代码:
final http.Response response = await http.get(
'https://www.mapquestapi.com/geocoding/v1/address?key=[MYAPIKEY]&inFormat=kvp&outFormat=json&location=${address}&thumbMaps=false&maxResults=1');
final decodedResponse = json.decode(response.body);
setState(() {
_coords = decodedResponse['results'][0]['locations'][0]['latLng'];
});
final http.Response staticMapResponse = await http.get(
'https://www.mapquestapi.com/staticmap/v5/map?key=[MYAPIKEY]¢er=${coords['lat']},${coords['lng']}&zoom=13&type=hyb&locations=${coords['lat']},${coords['lng']}&size=500,300@2x');
坐标是从 MapQuest 的地理编码 API 接收的,这是一个 async 请求。
【问题讨论】:
-
从 api 显示图像:flutter.io/cookbook/images/network-image
-
我尝试过使用 Image.network(),关键是它需要一个字符串值作为图像的 url,我没有从 GET 请求中收到。
-
只需将您传递给 GET 请求的字符串传递给 NetworkImage,NetworkImage 就会为您发出 GET 请求。否则使用docs.flutter.io/flutter/widgets/Image/Image.memory.html
-
@GünterZöchbauer 非常感谢!!直接在 Image.network() 中传入 Request Url 有效。