我有一个 PHP 后端,我在我的本地主机上使用它,所以一切正常,但我有一个问题,我从 API 获得的图像 URL 是一个错误的路径,我无法从服务器端更改它,所以我决定在我的客户端修复它
我可以使用此路径在我的模拟器上显示图像:
http://10.0.2.2:8000/storage/app/public/171/conversions/api-icon.jpg
API 给了我这条路径
http://192.168.1.114/multi-restaurants/public/storage/app/public/171/conversions/api-icon.jpg
我通过创建一个改变路径的函数来修复它,但它需要做很多工作,就像我应该把这个函数放在我想要显示图像的每个地方!!
我确定有一种方法可以在我收到 api 时直接从模型更改路径 这是我的模型
class Media {
String id;
String name;
String url;
String thumb;
String icon;
String size;
Media();
Media.fromJSON(Map<String, dynamic> jsonMap)
: id = jsonMap['id'].toString(),
name = jsonMap['name'],
url = jsonMap["url"] ,
thumb = jsonMap['thumb'],
icon = jsonMap['icon'],
size = jsonMap['formated_size'];
我在每个类中使用的这个函数来更改路径 Url
String changepath(String uuu) {
final uri = Uri.parse(uuu);
print("This is $uri");
if (uri.path.contains("multi-restaurants")) {
print("http://10.0.2.2:8000/${uri.pathSegments[2]}/${uri.pathSegments[3]}/${uri.pathSegments[4]}/${uri.pathSegments[5]}/${uri.pathSegments[6]}");
return"http://10.0.2.2:8000/${uri.pathSegments[2]}/${uri.pathSegments[3]}/${uri.pathSegments[4]}/${uri.pathSegments[5]}/${uri.pathSegments[6]}";
}
}
}
答案 0 :(得分:0)
如果API以这种格式不断发送“http://192.168.1.114/multi-r ...”中的URL,那么就有解决办法了,不知道是不是聪明之举你正在寻找。只需创建字符串类型的函数,从 json url = changer(jsonMap["url"]);
传递 url 并使用它来将 URL 转换为所需的 URL。
String changer(String _string1) {
String _string2 = _string1.replaceAll("http://192.168.1.114/multi-restaurants/public", "http://10.0.2.2:8000");
return _string2;
}
答案 1 :(得分:0)
我通过创建一个帮助类解决了这个问题,并在其中放置了一个静态函数,并在我想要显示的每个小部件中调用它(Url)
static String changer(String _string1) {
String _string2 = _string1.replaceAll(
"http://192.168.1.114/multi-restaurants/public",
"http://10.0.2.2:8000");
print(_string2);
return _string2;
}