我正在處理一項任務,它是 imgur 的克隆。首先,我想制作一個顯示來自 imgur 的影像的儀表板。
我想在我的儀表板中獲取畫廊影像,但我收到一條錯誤訊息:
顫振:{“資料”:{“錯誤”:“錯誤請求”,“請求”:“/3/gallery/”,“方法”:“GET”},“成功”:假,“狀態”:400}
你能檢查我的代碼并告訴我我在哪里做錯了嗎?

@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
var mPageCount = 0; // initial page count will be 0
bool isLoading = false;
int itemType = ImgurImage.TYPE_PROGRESS;
List<ImgurImage> imageList = [];
ScrollController? _controller;
_scrollListener() {
if (_controller!.offset >= _controller!.position.maxScrollExtent &&
!_controller!.position.outOfRange) {
_fetchImages();
}
}
@override
void initState() {
_controller = ScrollController();
_controller!.addListener(_scrollListener);
super.initState();
_fetchImages();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _loadView(),
);
}
Widget _loadView() {
if (imageList.isEmpty ||
(imageList.length == 1 &&
imageList[0].itemType == ImgurImage.TYPE_PROGRESS)) {
return const Center(child: CircularProgressIndicator());
} else if (imageList.length == 1 &&
imageList[0].itemType == ImgurImage.TYPE_ERROR) {
return Center(
child: RaisedButton(
onPressed: () {
_fetchImages();
},
child: Text('Try Again'),
),
);
} else {
itemType = imageList[imageList.length - 1].itemType;
return Column(
children: <Widget>[
Expanded(
child: GridView.count(
crossAxisCount: 3,
controller: _controller,
children: List.generate(
imageList.length,
(index) {
var image = imageList[index];
if (image.itemType == ImgurImage.TYPE_ITEM) {
return Center(
child: FadeInImage.assetNetwork(
placeholder: 'assets/imgur_placeholder.jpg',
image: image.link));
} else {
return Container();
}
},
),
),
),
_showIndicator(),
],
);
}
}
Widget _showIndicator() {
if (itemType == ImgurImage.TYPE_PROGRESS) {
return Container(
margin: const EdgeInsets.all(20),
child: const Center(child: CircularProgressIndicator()),
);
} else {
return Container();
}
}
void _fetchImages() async {
if (!isLoading) {
mPageCount ;
isLoading = true;
if (imageList.length == 1) imageList.removeLast();
imageList.add(ImgurImage(link: "", itemType: ImgurImage.TYPE_PROGRESS));
setState(() {});
await fetchImages().then((imgurImages) {
imageList.removeLast();
for (var value in imgurImages.images!) {
imageList.add(value);
}
}).catchError((error) {
imageList.removeLast();
if (imageList.isEmpty) {
imageList.add(ImgurImage(link: "", itemType: ImgurImage.TYPE_ERROR));
}
if (mPageCount > 0) {
mPageCount--;
}
}).whenComplete(() {
isLoading = false;
setState(() {});
});
}
}
}
uj5u.com熱心網友回復:
看來你的網址是錯誤的。
這是一個畫廊端點 url 規范。
https://api.imgur.com/endpoints/gallery#gallery
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466603.html
