【发布时间】:2022-06-18 07:11:47
【问题描述】:
我有一个 WordPress 博客,我正在尝试为该博客创建一个应用程序。在为博客使用 API 时,我无法找到正确的代码集来获取博客之间的图像我已经获取了博客的特色图像,但问题是在段落文本之间获取图像。现在,我得到的是这样的文本而不是图像。附上截图。
其次,在获取文本时,我将标签与文本一起获取,那么如何删除这些标签。附上截图。
这是我用来获取所有这些的代码:
import 'package:flutter/material.dart';
import 'package:thewritingparadigm/screens/post_details.dart';
import 'package:thewritingparadigm/service/post_data.dart';
class LatestPost extends StatefulWidget {
const LatestPost({Key? key}) : super(key: key);
@override
State<LatestPost> createState() => _LatestPostState();
}
class _LatestPostState extends State<LatestPost> {
Post postService = Post();
@override
Widget build(BuildContext context) {
return FutureBuilder<List>(
future: postService.getAllPost(),
builder: (context, snapshot) {
if (snapshot.hasData) {
if (snapshot.data!.isEmpty) {
return const Center(child: Text("No Post Available"));
}
return ListView.builder(
shrinkWrap: true,
itemCount: snapshot.data?.length,
itemBuilder: (context, i) {
return Card(
child: ListTile(
title: Column(
children: [
const SizedBox(
height: 20.0,
),
SizedBox(
width: double.infinity,
height: 250.0,
child: Image.network(snapshot.data![i]["_embedded"]
!["wp:featuredmedia"][0]["source_url"]),
),
const SizedBox(
height: 15.0,
),
Text(
snapshot.data![i]['title']['rendered'],
style: const TextStyle(
fontSize: 25.0,
fontWeight: FontWeight.bold,
),
),
],
),
subtitle: Container(
padding: const EdgeInsets.only(
left: 5.0, right: 5.0, bottom: 25.0),
child: Text(
snapshot.data![i]['content']['rendered']
.toString()
.replaceAll("<p>", "")
.replaceAll("</p>", ""),
maxLines: 4,
overflow: TextOverflow.ellipsis,
style: const TextStyle(fontSize: 16.0),
),
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
PostDetails(data: snapshot.data?[i]),
),
);
},
),
);
});
} else if (snapshot.hasError) {
return Center(
child: Text(snapshot.error.toString()),
);
} else {
return const Center(
child: CircularProgressIndicator(),
);
}
},
);
}
}
【问题讨论】:
-
我不明白你的问题,你能简单解释一下吗?
-
嘿!我已经更新了我的问题,希望我已经传达了我的问题,以便您可以帮助我。
-
我认为您将 API 响应作为 HTML 块获取。请以 JSON 对象的形式接收您的 API 响应。
-
其实这是我第一次使用 API,所以如果你能给我一些例子,如果它来自我的代码本身会很棒。
-
正如 Huthaifa 所说,您得到的是网站的 HTML 内容。如果我遇到你的情况,我会使用 Python
Flask创建一个 API,使用BeautifulSoup4抓取网站并仅返回所需的信息。
标签: wordpress flutter flutter-layout