为了账号安全,请及时绑定邮箱和手机立即绑定

在不使用参数和主体的情况下进行改造的错误请求,这怎么可能?

在不使用参数和主体的情况下进行改造的错误请求,这怎么可能?

子衿沉夜 2023-05-10 15:09:59
我的项目面临着一个非常奇怪的行为。我正在使用改造 v2.6.0我正在做这样的代码:@GET("{department}/details/")    fun getCouponDetailHistory(@Header("Authorization") token: String,                               @Path("department") department: String): Deferred<Response<Any>>我从服务中调用它,当然会发送参数。我启用了调试模式来跟踪查询,我看到了:INFO  [2019-08-02 10:03:13,132] okhttp3.OkHttpClient: --> GET https://my-url/departmentId/detailsINFO  [2019-08-02 10:03:13,405] okhttp3.OkHttpClient: <-- 400 Bad Request https://my-url/departmentId/details (272ms, unknown-length body)如果我将邮递员与一个超级简单的请求一起使用,而不是 URL 和授权令牌(我从我的代码中获取它,并且知道它是相同的)它会起作用。我很难理解我怎么会在这里提出错误的请求,这可能是我的配置?我是这样的。fun retrofitClient(baseUrl: String): Client = Retrofit.Builder()        .baseUrl(baseUrl)        .addCallAdapterFactory(CoroutineCallAdapterFactory())        //.addConverterFactory(JacksonConverterFactory.create(jsonMapper))    .addConverterFactory(        GsonConverterFactory.create())        .client(okHttpClient)        .build()        .create()如您所见,我之前添加了 JacksonConverterFactory。它适用于我拥有的 POST 端点,但不适用于我的 GET。有任何想法吗?
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

好吧,经过一段时间后,我发现客户端上缺少一个标头。

我是这样添加的

 @Headers("Accept: application/json") 
 @GET("myurl")

这解决了问题


查看完整回答
反对 回复 2023-05-10
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

在 kotlin 中使用以下代码转换器进行 Void 响应。由于没有官方支持取消 Retrofit 的响应。


    object UnitConverterFactory : Converter.Factory() {

  override fun responseBodyConverter(type: Type, annotations: Array<out Annotation>,

      retrofit: Retrofit): Converter<ResponseBody, *>? {

    return if (type == Unit::class.java) UnitConverter else null

  }


  private object UnitConverter : Converter<ResponseBody, Unit> {

    override fun convert(value: ResponseBody) {

      value.close()

    }

  }

}

查看完整回答
反对 回复 2023-05-10
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

我怀疑 / 在细节之后是问题所在。请在详细信息后删除 /@GET("{department}/details/")并重新启动您的应用程序它会工作。它给出 400,因为在请求中你没有传递额外的/之后的细节。https://my-url/departmentId/details (272ms, unknown-length body)



查看完整回答
反对 回复 2023-05-10
  • 3 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信