阻止 Image.network 对图像 url 进行编码
Prevent Image.network from encoding image url
我正在尝试在列表视图中显示多个图像。所以,我将它们传递给 image.network()。当我 运行 应用程序时,出现异常:
HTTP request failed, statusCode: 404,
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_009.jpg%0D
似乎“%0D”附加到 url。简而言之,url 在传递给 Image.network() 时正在被编码。有没有办法阻止这种编码?我已经检查了列表,urls 在传递给 Image.network() 之前没有被编码。
代码:
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: FutureBuilder(
future: doc,
builder: (BuildContext context, snapshot) {
if (!snapshot.hasData)
return Center(child: CircularProgressIndicator());
return ListView.builder(
primary: false,
shrinkWrap: true,
itemCount: chapter.images.length,
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(bottom: 10),
child: Image.network(chapter.images[index]),
);
});
}),
),
),
);
编辑:
数据存在于 chapter.images -
https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_001.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_002.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_003.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_4-5.png
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_6-7.png
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_008.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_009.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_10-11.png
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_012.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_013.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_014.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_015.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_016.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_017.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_18-19.png
%0D 是 URL- 回车 return 的编码值。您可以对 url 进行编码并打印它以查看它是否包含任何 CR。
var encoded = Uri.encodeFull(chapter.images[index]);
print(encoded);
如果它有任何 CR,那么您应该在分配给 Image.network() 之前替换它。
var urlWithoutCR = chapter.images[index].replaceAll(RegExp(r'\r'), "");
Image.network(urlWithoutCR);
我正在尝试在列表视图中显示多个图像。所以,我将它们传递给 image.network()。当我 运行 应用程序时,出现异常:
HTTP request failed, statusCode: 404,
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_009.jpg%0D
似乎“%0D”附加到 url。简而言之,url 在传递给 Image.network() 时正在被编码。有没有办法阻止这种编码?我已经检查了列表,urls 在传递给 Image.network() 之前没有被编码。
代码:
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: FutureBuilder(
future: doc,
builder: (BuildContext context, snapshot) {
if (!snapshot.hasData)
return Center(child: CircularProgressIndicator());
return ListView.builder(
primary: false,
shrinkWrap: true,
itemCount: chapter.images.length,
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(bottom: 10),
child: Image.network(chapter.images[index]),
);
});
}),
),
),
);
编辑:
数据存在于 chapter.images -
https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_001.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_002.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_003.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_4-5.png
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_6-7.png
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_008.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_009.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_10-11.png
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_012.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_013.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_014.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_015.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_016.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_017.jpg
I/flutter ( 4820): https://cdn.mangacruzers.com/file/AnimeRleases/MHA_265_18-19.png
%0D 是 URL- 回车 return 的编码值。您可以对 url 进行编码并打印它以查看它是否包含任何 CR。
var encoded = Uri.encodeFull(chapter.images[index]);
print(encoded);
如果它有任何 CR,那么您应该在分配给 Image.network() 之前替换它。
var urlWithoutCR = chapter.images[index].replaceAll(RegExp(r'\r'), "");
Image.network(urlWithoutCR);