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

Android使用skrape.it发起HTTP请求耗时过长问题求助

问题分析与解决方案

你的核心问题是skrape.it的AsyncFetcher发起HTTP请求耗时远超cURL,且必须设置2分钟以上超时才能避免报错,这大概率是因为skrape.it默认的Ktor客户端配置偏保守,导致连接、请求阶段效率低下。

核心优化方向:自定义Ktor客户端配置

skrape.it底层依赖Ktor实现HTTP请求,你可以通过自定义客户端参数来对齐cURL的性能:

1. 创建优化后的AsyncFetcher

import io.ktor.client.HttpClient
import io.ktor.client.engine.apache.Apache
import io.ktor.client.features.HttpTimeout
import io.ktor.client.features.http2.Http2
import skrape.core.AsyncFetcher

// 预配置优化的异步抓取器
private val optimizedAsyncFetcher = AsyncFetcher(
    client = HttpClient(Apache) {
        // 严格设置各阶段超时(对齐cURL的5秒级耗时)
        install(HttpTimeout) {
            connectTimeoutMillis = 5000    // 连接服务器超时5秒
            socketTimeoutMillis = 10000    // 数据传输超时10秒
            requestTimeoutMillis = 15000   // 整个请求周期超时15秒
        }

        // 优化Apache连接池与请求参数
        engine {
            customizeClient {
                setMaxConnTotal(20)        // 最大总连接数
                setMaxConnPerRoute(10)     // 单域名最大连接数
            }
            customizeRequest {
                // 模拟浏览器UA,避免被站点限流
                setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36")
            }
        }

        // 启用HTTP/2多路复用,提升请求效率
        install(Http2)
    }
)

2. 在抓取方法中使用优化后的Fetcher

override suspend fun searchDocuments(query: String): List<DocumentInfo> {
    return skrape(optimizedAsyncFetcher) {
        request {
            url = "https://wolnelektury.pl/szukaj/?q=$query"
            // 无需再设置超长timeout,已由客户端全局配置覆盖
        }
        // ... 你的页面解析逻辑
    }
}

其他排查点

  • 检查系统代理:skrape.it默认使用系统代理,若代理速度慢会导致超时,可手动关闭代理:
    engine {
        customizeClient {
            setRoutePlanner(org.apache.http.impl.conn.DefaultRoutePlanner(null))
        }
    }
    
  • 隔离请求阶段:暂时注释页面解析逻辑,仅发起HTTP请求并打印耗时,确认是请求还是解析环节导致的延迟
  • 替换客户端引擎:若Apache引擎仍有问题,可切换到OkHttp引擎,通过AsyncFetcher(client = HttpClient(OkHttp))配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:07:33