我无法将 URL 链接分配给 http.get() [重复]

Posted

技术标签:

【中文标题】我无法将 URL 链接分配给 http.get() [重复]【英文标题】:I can not assign URL link to http.get() [duplicate] 【发布时间】:2021-06-02 21:18:51 【问题描述】:

我尝试使用 http 包,但我无法将 URL 链接分配给 http.get(),这表明我无法将字符串分配给参数 Uri。

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import  'dart:async';
import 'dart:convert';

class MyHomePage extends StatefulWidget 
  final String title;
  MyHomePage(Key key, this.title) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();


class _MyHomePageState extends State<MyHomePage> 
  Future<List<User>> _getUsers()
    http.get("http://www.json-generator.com/api/json/get/crbzxbbLIi?indent=2");
  
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: new Text(widget.title),
      ),
      body: Container(

      ),
    );
  

【问题讨论】:

【参考方案1】:

要将您的 URL 字符串转换为 Uri,您只需使用 Uri.parse(url)

代码示例

class _MyHomePageState extends State<MyHomePage> 
  Future<List<User>> _getUsers() 
    http.get(Uri.parse("http://www.json-generator.com/api/json/get/crbzxbbLIi?indent=2"));
  

 // ...

【讨论】:

【参考方案2】:

您必须使用 Uri :

https://flutter.dev/docs/cookbook/networking/fetch-data

Future<http.Response> fetchAlbum() 
  return http.get(Uri.https(w.json-generator.com/api/json/get/crbzxbbLIi?indent=2"));

【讨论】:

以上是关于我无法将 URL 链接分配给 http.get() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 pexel api 获取 http 请求

在颤振中发出 http.get() 请求的问题

如何在http get中将多个字符串传递给一个url?

无法将音频源分配给源标签以响应 ajax 请求

Flutter中的参数类型“String”无法分配给参数类型“Uri”[重复]

Django迁移无法将用户实例分配给用户字段