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

使用OkHttp 4.9.3时遭遇java.lang.NoSuchMethodError问题

OkHttp 4.9.3 中 RequestBody.create 方法报 NoSuchMethodError 的排查方案

针对你遇到的问题,以下是具体排查和解决步骤:

  • 核对方法参数顺序
    OkHttp 4.x 中,接收字符串的 RequestBody.create 方法签名为 RequestBody.create(MediaType, String),而你的代码写的是 RequestBody.create(json, MediaType.parse(...)),参数顺序完全颠倒。旧版本 OkHttp(如3.x)存在反向参数的重载,但4.x已调整该方法签名,这会直接导致找不到对应方法。修改代码为:

    RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json);
    
  • 排查依赖冲突
    执行 mvn dependency:tree 命令,搜索所有 com.squareup.okhttp3 相关依赖,检查是否存在版本不一致的情况(比如间接引入了3.x版本的OkHttp)。如果发现旧版本依赖,在你的OkHttp依赖中添加排除规则:

    <dependency>
       <groupId>com.squareup.okhttp3</groupId>
       <artifactId>okhttp</artifactId>
       <version>4.9.3</version>
       <exclusions>
          <exclusion>
             <groupId>com.squareup.okhttp3</groupId>
             <artifactId>okhttp</artifactId> <!-- 替换为实际冲突的artifactId -->
          </exclusion>
       </exclusions>
    </dependency>
    
  • 验证编译与运行时依赖一致性
    在代码中临时添加一行打印,查看运行时加载的RequestBody类来源:

    System.out.println(RequestBody.class.getProtectionDomain().getCodeSource().getLocation());
    

    输出的jar包路径应指向OkHttp 4.9.3版本的文件。如果路径是旧版本jar包,说明运行时环境存在依赖覆盖(比如容器、第三方组件自带了旧版OkHttp),需要调整运行时依赖优先级。

  • 清理Maven缓存并重新构建
    执行 mvn clean install -U 命令,强制清理本地构建缓存并重新下载依赖,避免本地仓库中损坏或版本混乱的jar包影响运行。

  • 统一管理OkHttp版本
    在pom.xml的dependencyManagement节点中统一声明OkHttp版本,确保所有相关模块(如okhttp、okhttp-urlconnection等)使用同一版本:

    <dependencyManagement>
       <dependencies>
          <dependency>
             <groupId>com.squareup.okhttp3</groupId>
             <artifactId>okhttp-bom</artifactId>
             <version>4.9.3</version>
             <type>pom</type>
             <scope>import</scope>
          </dependency>
       </dependencies>
    </dependencyManagement>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:08:14