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

使用Retrofit发起无subpath的POST请求报错的解决方法

问题解决方法

错误原因

Retrofit对baseUrl的格式有严格要求,必须以斜杠(/)结尾;同时接口的@POST注解不能用空字符串指定根路径,两者任意一项不符合要求都会触发URL解析错误,导致无法识别合法主机地址。

修正步骤

  1. 给baseUrl添加结尾斜杠
    修改Retrofit构建代码中的baseUrl参数,确保其以/结尾,保证URL拼接逻辑正常运行。

  2. 修正@POST的路径参数
    将接口中的@POST("")改为@POST("/"),明确指定请求的根路径。

修正后的完整代码

接口定义部分

@Multipart
@POST("/")
fun updateProfile(
    @Part("tile_mode") fullName: Int,
    @Part("raw_image") image: RequestBody
): Call<Result>

Retrofit实例构建部分

val retrofit = Retrofit.Builder()
    .baseUrl("https://blog.banned.top:2054/")
    .addConverterFactory(GsonConverterFactory.create())
    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
    .build()

val request = retrofit.create(GetRequestInterface::class.java)
val call: Call<Result> = request.updateProfile(some parameter)

补充说明

后续如果需要请求带子路径的接口,只要保持baseUrl以/结尾的格式,直接在@POST注解中写子路径即可(比如@POST("/api/update")),Retrofit会自动完成正确的URL拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:45:26