Home > front end >  No host specified in URI (Flutter)
No host specified in URI (Flutter)

Time:02-01

So I have this code and I take an image from Internet with webscrapper, the problem is that when I try to take the image with the basic URl without the http:// behind it don't work and when I add it I don't have any error but I got a black screen on my emulator and I can't see this value of the image on my terminal even if I know the value is not null. If someone can help I will be very greatful thank you very much !

 class ContentScreen extends StatefulWidget {
      const ContentScreen({Key? key}) : super(key: key);
      @override
      _ContentScreenState createState() => _ContentScreenState();
    }
    
class _ContentScreenState extends State<ContentScreen> {
  List<Map<String,dynamic>>? contentPages;
  bool Data = false;

  Future<void> getcontent() async{
    final webscraper = WebScraper("https://manhuas.net/");
    String TempRoute = "manhua/what-harm-would-my-girl-do-manhua/what-harm-would-my-girl-do-chapter-1/";
    if (await webscraper.loadWebPage(TempRoute)){
      contentPages = webscraper.getElement("div.page-break.no-gaps > img ", ["data-src"]);
      setState(() {
        Data = true;
      });
      print(contentPages);    
    }
  }
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    getcontent();
  }
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: getcontent(),
      builder: (context, snapshot) {
        return Scaffold(
          body: Data? Container(
            child: ListView.builder(
              shrinkWrap: true,
              itemCount: contentPages!.length,
              itemBuilder:   (context,index  ) {
                return Image.network(contentPages![index]['attributes']['src'].toString().trim(),
                  fit: BoxFit.fitWidth,loadingBuilder: (context , child, loadingprogress){
                  if (loadingprogress != null) return child;
                  return Center(
                    child: CircularProgressIndicator(),
                  );

                },);

              },
            )
            )
                  : Center(
            child: CircularProgressIndicator(
              color: Constants.mygreen,
          )
          ));
      }
    );
  }
}

And this is a screen of my screen for more details:

enter image description here

CodePudding user response:

Please check the below code it's working perfectly

import 'package:flutter/material.dart';
import 'package:web_scraper/web_scraper.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'OverlayEntry Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: ContentScreen(),
    );
  }
}

class ContentScreen extends StatefulWidget {
  const ContentScreen({Key? key}) : super(key: key);

  @override
  _ContentScreenState createState() => _ContentScreenState();
}

class _ContentScreenState extends State<ContentScreen> {
  List<Map<String, dynamic>>? contentPages;
  bool Data = false;

  Future<void> getcontent() async {
    final webscraper = WebScraper("https://manhuas.net/");
    String TempRoute =
        "manhua/what-harm-would-my-girl-do-manhua/what-harm-would-my-girl-do-chapter-1/";
    if (await webscraper.loadWebPage(TempRoute)) {
      contentPages =
          webscraper.getElement("div.page-break.no-gaps > img ", ["data-src"]);
      setState(() {
        Data = true;
      });
      print(contentPages);
    }
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    getcontent();
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
        future: getcontent(),
        builder: (context, snapshot) {
          return Scaffold(
              body: Data
                  ? Container(
                      child: ListView.builder(
                      shrinkWrap: true,
                      itemCount: contentPages!.length,
                      itemBuilder: (context, index) {
                        return Image.network(
                          contentPages![index]['attributes']
                          ['data-src']
                              .toString()
                              .trim(),
                          fit: BoxFit.fitWidth,
                        );
                      },
                    ))
                  : Center(
                      child: CircularProgressIndicator(
                      color: Colors.green,
                    )));
        });
  }
}
  •  Tags:  
  • Related