我正在尝试获取 API 请求,但特殊字符“*”(星号)中断了我的 API 调用,因此发送的请求不完整。有什么办法可以逃脱吗?
而不是这个:
https://rest2.bermanngps.cl/BermannRest/api/enviacomando?tk=3cf40d35c4e48b60e007cdc85f1342f5&comando=%24SRVFFFFFF%2C25%2C1*8F&md5pass=4e1ed8ef96fb83a0a30c39b0019fadc7&user=1017&avserie=12977
这是发送的:
https://rest2.bermanngps.cl/BermannRest/api/enviacomando?tk=3cf40d35c4e48b60e007cdc85f1342f5&comando=%24SRVFFFFFF%2C25%2C1
我正在使用retrofit的GET请求方法,使用repository动态加载Query字符串。我将如何在那里使用 URLEncoder 方法?
@GET("enviacomando")
suspend fun getSendComando(
@Query("tk") tk: String,
@Query("comando") comando: String,
@Query("md5pass") md5pass: String,
@Query("user") user: String,
@Query("avserie") avserie: String
): Response<SendComandoResponse>
最佳答案
您可以为此使用 URLEncoder 类。 因此,您需要使用 URLEncoder 对来自 URL 的查询部分进行编码。
String query = URLEncoder.encode("tk=3cf40d35c4e48b60e007cdc85f1342f5&comando=%24SRVFFFFFF%2C25%2C1*8F&md5pass=4e1ed8ef96fb83a0a30c39b0019fadc7&user=1017&avserie=12977", "utf-8");
String url = "https://rest2.bermanngps.cl/BermannRest/api/enviacomando?" + query;
关于android - 如何在 API 调用中转义特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65722503/