android - 如何在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-fg66a9da8027
的56nm67d0-7687-4d70-fg45-22d6745423a7
URL 中表示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"}
我将不胜感激。
解决方案
尝试对您的 URL 进行编码以查看它是否有效,例如使用%27而不是'。
您可以使用此网站进行编码
推荐阅读
- mongodb - Scala MongoDB 驱动程序的磁铁模式
- javascript - 更新依赖项后,如何让 Visual Studio Code IDE 更新类型?
- twilio - Twilio 无法记录来电对话(与留言无关)
- python - 在 jupyter notebook 中使用变量名运行 py 文件
- r - 在R中另一个数据帧的特定位置添加一个数据帧的行
- javascript - 无法一次在三个地方读取 null 的属性“样式”
- ios - 使用 showBluetoothAccessoryPicker 会导致 SceneDelegate 出现错误
- python - 计算数组中介于 0 和 1 之间的所有值
- ios - 正在调用 CollectionView `DidSelect` 方法但没有推送下一个 VC,如何解决?
- artifactory - 由于分割违规导致的人工崩溃