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

如何参照curl接口文档编写正确的access_token请求代码?

修正后的代码实现

@FormUrlEncoded
@Headers(
    "Accept: application/json"
)
@POST("/token")
suspend fun requestToken(
    @Field("client_id") clientId: String,
    @Field("client_secret") clientSecret: String,
    @Field("grant_type") grantType: String = "client_credentials",
    @Field("scope") scope: String = "accounts"
): AccessTokenResponse

上述代码将grant_type和scope设为了默认参数,调用时无需额外传值,若后续有动态修改需求也可以灵活调整。如果你的Retrofit BaseUrl已经配置为https://mandarine.sai.com/,路径不需要额外调整,调用时传入对应CLIENT_ID和CLIENT_SECRET即可获得正确的token响应。

核心修改点说明

  • 新增@FormUrlEncoded注解:所有application/x-www-form-urlencoded类型的POST请求必须添加该注解,否则表单参数无法正确序列化到请求体
  • 替换@Query为@Field注解:@Query是将参数拼接在请求URL后作为查询参数,而curl中-d对应的是请求体中的表单参数,必须用@Field传递
  • 修正参数名错误:将原代码中写错的client_ id(中间含空格)修正为文档要求的client_id
  • 补充两个必填固定参数:按文档要求添加grant_type(固定值为client_credentials)和scope(固定值为accounts)两个表单参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:36:04