Android 使用Kotlin更新2:URL意外更改
正在与Kotlin一起使用改型进行Android项目。问题是URL意外更改并抛出422 更具体地说,问题在于改型处理格式化日期的方式。API使用此时间格式:Android 使用Kotlin更新2:URL意外更改,android,kotlin,retrofit2,Android,Kotlin,Retrofit2,正在与Kotlin一起使用改型进行Android项目。问题是URL意外更改并抛出422 更具体地说,问题在于改型处理格式化日期的方式。API使用此时间格式: 2019-08-21T05%3A12%3A53Z 在本例中,代表2019年8月21日05:12:53。如您所见,时间值的分隔符是%3A 这是我正在使用的界面: interface CurrenciesApi { @GET("currencies/sparkline?key=${apiKey}") fun getCurre
2019-08-21T05%3A12%3A53Z
在本例中,代表2019年8月21日05:12:53。如您所见,时间值的分隔符是%3A
这是我正在使用的界面:
interface CurrenciesApi {
@GET("currencies/sparkline?key=${apiKey}")
fun getCurrenciesSparkline(
@Query("start") start: String,
@Query("end") end: String): Call<List<CurrencySparkline>>
}
currencesapi
接口的实现
val api = retrofit.create(CurrenciesApi::class.java)
最后是电话
val start = "2019-08-08T02%3A17%3A59Z"
val end = "2019-09-01T00%3A00%3A00Z"
response: Response<List<CurrencySparkline>> = api
.getCurrenciesSparkline(start, end)
.execute()
为什么会发生这种情况,我该如何解决?非常感谢您提供的任何帮助。在使用预编码字符串时,请使用
@Query(“Query”,encoded=true)
。Docs-指定参数名称和值是否已进行URL编码。是的,这解决了我的问题。非常感谢你的时间和努力!!!
val start = "2019-08-08T02%3A17%3A59Z"
val end = "2019-09-01T00%3A00%3A00Z"
response: Response<List<CurrencySparkline>> = api
.getCurrenciesSparkline(start, end)
.execute()
... &start=2019-08-08T02%253A17%253A59Z&end=2019-09-01T00%253A00%253A00Z ...