我想将json数据从我的服务器(只是一些基本的节点js服务器)发送到我的应用程序,我想在控制台中看到我已接收到该数据并打印出来。
Json文件(仅此而已,没什么特别的)
[
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
},
{
"userId": 1,
"id": 3,
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
}
]
服务器代码
var http=require('http');
var fs=require('fs');
var file=fs.readFileSync('tmp.json','utf8'); //tmp is name of my json file
var server=http.createServer(function(req,res)
{
res.writeHead(200,{'Content-Type': 'text/plain'});
res.end(file);
});
server.listen(3000,'127.0.0.1');
Flutter应用程序中的代码,负责获取文件并进行打印
class AwesomeButtonState extends State<AwesomeButton>
{
Future<String>GetData() async
{
var responce=await http.get(
Uri.encodeFull("127.0.0.1:3000"),
headers: {
"Accept": "text/json"
}
);
//print(responce.body);
List data= json.decode(responce.body); //konwersja na liste
print(data[1]["title"]);
}
}
我收到的错误是:
ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: FormatException: Scheme not starting with alphabetic character (at character 1)
当我尝试从其他服务器e.x获取数据时。 http://jsonplaceholder.typicode.com/posts一切正常,所以我认为应用程序无关,而是服务器。我已经尝试过更改服务器中的Content-Type,但是没有用。
答案 0 :(得分:1)
“方案不是以字母字符开头(在字符1处)”错误表明您的架构(= url)不正确。 尝试致电
http.get("http://127.0.0.1:3000"....
答案 1 :(得分:0)
要使其正常工作,我需要更改2件事
所以最终的工作代码行看起来像[在flutter应用中]
Uri.encodeFull("http://10.0.2.2:3000")