You need to enable JavaScript to run this app. Kotlin开发Android食品日程App:Retrofit2配置GET/baseUrl/Query参数问题
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin开发Android食品日程App:Retrofit2配置GET/baseUrl/Query参数问题

代码问题修正指引
  • baseUrl格式错误:当前编写的baseUrl字符串开头夹带了多余的空格,会直接触发Retrofit的路径格式校验异常。Retrofit要求baseUrl必须是带域名根路径、以斜杠结尾的合法地址,正确写法应为https://data.sfgov.org/,不能在开头或中间夹带不可见的空白字符。
  • GET请求路径拼接不匹配:按照Retrofit的固定拼接规则,@GET注解内的路径会直接拼在baseUrl末尾。当前写的@GET("jjew-r69b.json")拼接后生成的最终请求地址会缺失resource/路径段,和目标接口地址不匹配。需要把注解内的路径改成@GET("resource/jjew-r69b.json"),才能保证拼接后的地址和目标接口完全一致。
  • Query参数配置说明:该开放数据接口的认证令牌参数并非api_Key,如果按当前参数名传值,服务端无法识别对应的认证信息。非认证调试场景下可以不携带这类参数,接口默认的无认证调用额度足够日常测试;如果需要正式调用,把Query的键名替换为接口实际支持的$app_token即可,注意Kotlin代码里写$符号需要做转义处理,避免被字符串模板逻辑误解析。

修正后的可运行代码

接口定义:

interface FoodTruckService {
    @GET("resource/jjew-r69b.json")
    fun listFoodTruck(
        @Query("\$app_token") apiKey: String? = null
    ): Call<Location2>
}

单例客户端实现:

object FoodTruckDbClient {
    private val retrofit = Retrofit.Builder()
        .baseUrl("https://data.sfgov.org/")
        .addConverterFactory(GsonConverterFactory.create())
        .build()

    val service = retrofit.create(FoodTruckService::class.java)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 18:45:05