首页 > 解决方案 > Fuel HTTP - 避免 URL 编码

问题描述

使用改造我可以获取并避免 URL 编码如下:

@GET("classes/Tournaments")
    fun searchTournament(@Query(value = "where", encoded = false) query: String): Call<List<Tournament>>

在 Fuel 这个 GET 请求中:

fun searchTournament(name: String): Any {
    val (request, _, result)
            = Fuel.get(baseUrl.plus("/classes/tournaments"), listOf("where" to mapOf("name" to name))).responseString()
    val (payload, error) = result

    println(request.url)

    return ""
}

生成此 URL:https://parseapi.back4app.com/classes/tournaments?where=%7Bname%3DBrasileir%C3%A3o+2019%7D这会导致错误。

我在文档中找不到任何关于避免编码的明确内容。这可能吗?

我的应用是 Kotlin 控制台应用(无 Android)

当我将此查询发送到服务器时,它会响应 Http 500 - Internal Server Errors(没有更多详细信息)。我认为它不理解查询。

2019-04-02T03:17:23.314Z - Uncaught internal server error.

服务器是 ParseServer(Back4App) 的一个实例,我无法在那里解码查询。

标签: resthttpkotlinparse-platform

解决方案


这是关于使用 rest api 的明确说明。

https://docs.parseplatform.org/rest/guide/#query-constraints

where key 的值/格式错误。您必须使用双引号和 ':' 而不是直接使用带有 '=' 的查询键。

所以你的编码 URL 应该是这样的: https://parseapi.back4app.com/classes/tournaments?where=%7B%22name%22%3A%22Brasileir%C3%A3o%2B2019%22%7D


推荐阅读