Gradle android-使用OkHTTP的毕加索无法加载其URL中包含竖线字符(“|”)的图像
我在我的项目中使用毕加索和MapBox。只要MapBox的依赖项中有OkHTTP,我就不得不使用OkHTTP。 但当我将OkHTTP添加到gradle dependencies时,毕加索无法加载URL中包含竖线字符(“|”)的图像 没有OkHTTP:Gradle android-使用OkHTTP的毕加索无法加载其URL中包含竖线字符(“|”)的图像,gradle,mapbox,picasso,okhttp,Gradle,Mapbox,Picasso,Okhttp,我在我的项目中使用毕加索和MapBox。只要MapBox的依赖项中有OkHTTP,我就不得不使用OkHTTP。 但当我将OkHTTP添加到gradle dependencies时,毕加索无法加载URL中包含竖线字符(“|”)的图像 没有OkHTTP: Picasso.with(context).load(“http://example.com/image.jpg)插入(图像视图)//好啊 毕加索.with(context).load(“http://example.com/image.jpg|1
Picasso.with(context).load(“http://example.com/image.jpg)插入(图像视图)//好啊
毕加索.with(context).load(“http://example.com/image.jpg|100:100“)。插入(图像视图)//好的
使用OkHTTP:
Picasso.with(context).load(“http://example.com/image.jpg)插入(图像视图);
//09-01 19:07:35.280 24916-24916/com.test D/毕加索﹕ 主错误[R6]+287ms
Picasso.with(context).load(“http://example.com/image.jpg|100:100“)。插入(图像视图)//好的
因此,我的问题是:如果另一个库需要OkHTTP,如何避免在毕加索中使用OkHTTP,或者如何解决此问题并继续使用OkHTTP?尝试OkHTTP 2.5.0。它支持包含
|
字符的URL。试试OkHttp 2.5.0。它支持包含|字符的URL。我已通过在MyApplication.onCreate()方法中添加下一个代码解决了此问题:
Picasso picasso = new Picasso.Builder(getApplicationContext())
.requestTransformer(new Picasso.RequestTransformer() {
@Override
public Request transformRequest(Request request) {
Uri oldImageUri = request.uri;
Uri newImageUri = oldImageUri.buildUpon().query(oldImageUri.getEncodedQuery()).build();
return request.buildUpon().setUri(newImageUri).build();
}
}).build();
picasso.setLoggingEnabled(true);
Picasso.setSingletonInstance(picasso);
我通过在MyApplication.onCreate()
方法中添加下一个代码解决了这个问题:
Picasso picasso = new Picasso.Builder(getApplicationContext())
.requestTransformer(new Picasso.RequestTransformer() {
@Override
public Request transformRequest(Request request) {
Uri oldImageUri = request.uri;
Uri newImageUri = oldImageUri.buildUpon().query(oldImageUri.getEncodedQuery()).build();
return request.buildUpon().setUri(newImageUri).build();
}
}).build();
picasso.setLoggingEnabled(true);
Picasso.setSingletonInstance(picasso);
当我开始使用OkHttp时,我也遇到了同样的问题。问题似乎是垂直条字符必须编码。只需将其替换为编码值(%7C),它就可以正常工作。在您的情况下,url变为:
http://example.com/image.jpg%7C100:100
当我开始使用OkHttp时,我也遇到了同样的问题。问题似乎是垂直条字符必须编码。只需将其替换为编码值(%7C),它就可以正常工作。在您的情况下,url变为:
http://example.com/image.jpg%7C100:100