2 votes

Comment récupérer les images de bing web search apiv7 dans mon application flutter

Comment puis-je utiliser Bing web search Apiv7 pour obtenir des photos dans mon application flutter ?

J'ai obtenu l'API et les points finaux sur le site officiel mais je n'ai pas pu obtenir le fichier JSON pour l'appeler dans l'item builder child.

Exemple d'enfant : new Image.network('${data['value']['webSearchUrl']}'

Je ne sais pas quoi mettre dans cet enfant et où mettre la clé 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);
}

1voto

gamescodedogs Points 13

webSearchUrl pointe vers une page web contenant des résultats de recherche, c'est pourquoi il ne fonctionne pas à l'intérieur de Image.network() . Essayez de le remplacer par contentUrl pour l'image complète ; à partir du site web d'une tierce partie ou thumbnailUrl pour l'url de la petite vignette hébergée par bing.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X