如何在我的颤振应用程序中从 bing web search apiv7 获取图像

Posted

技术标签:

【中文标题】如何在我的颤振应用程序中从 bing web search apiv7 获取图像【英文标题】:How to get images from bing web search apiv7 in my flutter application 【发布时间】:2019-07-11 20:46:24 【问题描述】:

如何使用 Bing 网络搜索 Apiv7 在我的 Flutter 应用程序中获取照片?

我从官方网站获得了 API 和端点,但我无法获取 JSON 文件以在 item builder child 中调用它。

示例子:new Image.network('$data['value']['webSearchUrl']'

我不知道该给这个孩子放什么,也不知道把 API 密钥放哪里...

class _PageOneState extends State<PageOne> 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      body: new FutureBuilder(
        future: getPics(),
          builder: (context, snapShot)
          Map data = snapShot.data;
          if(snapShot.hasError)
            print(snapShot.error);
            return Text('Failed to get data from server',
              style: TextStyle(color: Colors.red,
              fontSize: 22.0),);
          else if(snapShot.hasData)
            return new Center(
              child: new ListView.builder(
                itemCount: data.length,
                  itemBuilder: (context, index)
                  return new Column(
                    children: <Widget>[

                      new Container(
                        child: new InkWell(
                          onTap: (),
                          child: new Image.network(
                            '$data['value']['webSearchUrl']'
                          ),
                        ),
                      ),
                      new Padding(padding: const EdgeInsets.all(5.0)),
                    ],
                  );
                  ),
            );

          
          else if(!snapShot.hasData)
            return new Center(child: CircularProgressIndicator(),);
          
          
      ),

    );
and below the code -


Future<Map> getPics() async
  String url =
  'https://api.cognitive.microsoft.com/bing/v7.0/images';
  http.Response response = await http.get(url);
  return json.decode(response.body);

【问题讨论】:

【参考方案1】:

webSearchUrl 指向一个带有搜索结果的网页,这就是为什么它在Image.network() 中不起作用的原因。尝试将其更改为contentUrl 以获得完整图像;来自第三方网站或 thumbnailUrl 用于 bing 托管的小缩略图网址。

【讨论】:

以上是关于如何在我的颤振应用程序中从 bing web search apiv7 获取图像的主要内容,如果未能解决你的问题,请参考以下文章

数据不会在颤振中从 API 加载。我该如何解决?

如何在颤振中从 FirebaseAuth 电话验证方法返回变量?

如何在颤振中从 FutureProvider 获取数据

如何在 Web 浏览器中从 Silverlight 应用程序捕获图像

我们如何在颤振应用程序中从谷歌地图获取特定位置的照片[关闭]

如何在 Flutter 中从 Web 加载和呈现 PDF 文件