gpt4 book ai didi

http - 如何使 HTTP 请求在 Flutter web 中工作?

转载 作者:行者123 更新时间:2023-12-03 02:41:03 26 4
gpt4 key购买 nike

我正在尝试从我的站点链接中获取数据:http://mrmatjar.com/kaka/dataaza.php

这是我的代码

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:mrmatjar_afflite/shopobj.dart';
class Operations{
static Future<List<ShopObj>> loly() async{
List<ShopObj> ak= new List<ShopObj>();
var res = await http.get(Uri.encodeFull("https://mrmatjar.com/kaka/dataaza"),headers: {"Accept":"application/json"});

print(res);
var v = json.decode(x.body);
for(var h in v){
ak.add(new ShopObj(h['title'], h['cost'], h['earn'], h['image']));
}
return ak;
}
}

但它不起作用。
当我运行它时,Web 应用程序中断,当我使用中断点时,它显示文件调用
致盲 Dart

最佳答案

欢迎使用堆栈溢出:)。

第一:

我在您的代码中看到一些拼写错误。
var v = json.decode(x.body);应该
var v = json.decode(res.body);
第二:

一旦你解决了上述问题,你可能会面临 跨域请求(CORS) 错误,这可能是因为您尚未在服务器中进行设置。特别是如果您的 Flutter Web 应用程序与运行 api 的服务器不在同一个域中运行。即使它在同一台机器上,您也必须允许来自某些域和端口的请求。如果您不知道 CORS,您可以阅读 here .

第三:

正如我所看到的,您正在处理响应而不检查响应的 statusCode,当您尝试解码响应时,它仍然会导致错误。

我在这里有一个基于 DOGs public api 的简单运行示例.

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

class HttpRequestDemo extends StatefulWidget {
@override
_HttpRequestDemoState createState() => _HttpRequestDemoState();
}

class _HttpRequestDemoState extends State<HttpRequestDemo> {
String imageUrl = "";

@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Center(
child: Image.network(
imageUrl,
height: MediaQuery.of(context).size.height / 3,
width: MediaQuery.of(context).size.width / 3,
),
),
FloatingActionButton(
child: Icon(Icons.cloud_download),
onPressed: () {
fetchData();
},
)
],
));
}

fetchData() async {
final res = await http.get("https://dog.ceo/api/breeds/image/random");

if (res.statusCode == 200) {
var v = json.decode(res.body);
setState(() {
imageUrl = v['message'];
});
}
}
}


每次按下 float 操作按钮时,此应用程序都会显示一张新的狗照片,如下所示,这是基于 api 的响应。

enter image description here
enter image description here

关于http - 如何使 HTTP 请求在 Flutter web 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58557173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com