You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Glide加载IP地址图片遇SocketException: Connection reset问题求助

解决Glide加载IP地址图片出现SocketException: Connection reset的方案

以下是几个经过验证的可行解决办法,按优先级尝试:

1. 替换Glide的默认Http客户端为自定义OkHttp实例

Glide默认的Http配置可能和你的服务器不兼容,自定义OkHttp客户端可以调整超时、重试等参数:

首先确保添加Glide的OkHttp集成依赖(版本和你使用的Glide版本匹配):

implementation 'com.github.bumptech.glide:okhttp3-integration:4.15.1'

然后创建自定义的AppGlideModule来替换客户端:

@GlideModule
public class CustomGlideModule extends AppGlideModule {
    @Override
    public void registerComponents(Context context, Glide glide, Registry registry) {
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .connectTimeout(30, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .writeTimeout(30, TimeUnit.SECONDS)
            .retryOnConnectionFailure(true)
            .protocols(Collections.singletonList(Protocol.HTTP_1_1)) // 强制使用HTTP/1.1,避免HTTP/2兼容性问题
            .build();
        registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(okHttpClient));
    }
}

2. 检查并修正服务器的响应头

Glide对图片的MIME类型校验较严格,如果服务器返回的Content-Type不是image/webp(比如返回application/octet-stream),可能导致加载失败。请调整服务器配置,确保WebP图片的响应头设置为:

Content-Type: image/webp

3. 强制Glide忽略格式校验直接加载

如果暂时无法修改服务器配置,可以让Glide强制以Bitmap形式加载,跳过部分校验:

Glide.with(yourContext)
    .asBitmap()
    .load("http://xx.xx.xx.xx:1901/image/image.webp")
    .dontTransform()
    .into(yourImageView);

4. 清除Glide缓存

有时候缓存的错误响应会导致重复失败,先清除缓存再尝试加载:

// 清除磁盘缓存(建议在子线程执行)
new Thread(() -> Glide.get(yourContext).clearDiskCache()).start();
// 清除内存缓存
Glide.get(yourContext).clearMemory();

内容的提问来源于stack exchange,提问作者Guvanch Rahmankulov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:54:56