首页 > 解决方案 > 如何在android studio中构建url时编码特殊字符?

问题描述

我正在尝试使用特殊字符和OR运算符对 URL 进行编码。这是 URL 的样子:

https://example.net/house/info?_queryFilter=_id+eq+%27333a22e7-5g5g-4sd5-df67-fg66a9da8027%27+or+_id+eq+%2756nm67d0-7687-4d70-fg45-22d6745423a7%27

注意:在上面333a22e7-5g5g-4sd5-df67-fg66a9da802756nm67d0-7687-4d70-fg45-22d6745423a7URL 中表示houseID

这是我用于循环的代码houseID

for (int i = 0; i < apiResponse.getHouses().size(); i++) {
        if (houseQuery == null) {
            houseQuery = "_id+eq+".concat("'").concat(apiResponse.getHouses().get(i).getHouseId()).concat("'");
        } else {
            houseQuery = houseQuery.concat("+or+_id+eq+").concat("'").concat(apiResponse.getHouses().get(i).getHouseId()).concat("'");
        }
    } 

这是我的 API 接口:

@GET(UrlConstants.URL_GET_HOUSE)
void getHouseInfo(
        @Header(Constants.HEADER_SESSIONID) String sessionID,
        @Query(Constants.QUERY_FILTER) String query,
        Callback<HouseInfoResponse> houseInfoResponseCallback);

我在日志中收到以下错误:

{"code":400,"reason":"Bad Request","message":"The value '_id+eq+'333a22e7-5g5g-4sd5-df67-fg66a9da8027'+or+_id+eq+'56nm67d0-7687-4d70-fg45-22d6745423a7'' for parameter '_queryFilter' could not be parsed as a valid query filter"}

我将不胜感激。

标签: androidurlutf-8urlencode

解决方案


尝试对您的 URL 进行编码以查看它是否有效,例如使用%27而不是'

您可以使用此网站进行编码


推荐阅读