Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在API调用中转义特殊字符?_Android_Api_Rest_Httprequest_Retrofit2 - Fatal编程技术网

Android 如何在API调用中转义特殊字符?

Android 如何在API调用中转义特殊字符?,android,api,rest,httprequest,retrofit2,Android,Api,Rest,Httprequest,Retrofit2,我正试图获取API请求,但一个特殊字符“*”(星号)打断了我的API调用,因此发送不完整。有什么办法可以逃脱吗 与此相反: https://rest2.bermanngps.cl/BermannRest/api/enviacomando?tk=3cf40d35c4e48b60e007cdc85f1342f5&comando=%24SRVFFFFFF%2C25%2C1*8F&md5pass=4e1ed8ef96fb83a0a30c39b0019fadc7&user=101

我正试图获取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
我使用改造的GET请求方法,使用存储库动态加载查询字符串。我将如何在那里使用URLEncoder方法

@GET(“enviacomando”)
暂停趣味getSendComando(
@查询(“tk”)tk:String,
@查询(“comando”)comando:String,
@查询(“md5pass”)md5pass:String,
@查询(“用户”)用户:字符串,
@查询(“avserie”)avserie:String
):回应

您可以为此使用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;

我刚刚更改了与URLEncoder冲突的值

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;
token?.let{tk->
userId?.let{user->
comando?comandoComando?让{it1->
mVehiculo?让{it2->
mViewModel.sendComando(
tk=tk,
avserie=it2.avserie,
用户=用户,
comando=URLEncoder.encode(it1,“UTF-8”),
md5pass=通过
)
}
}
}
}

由于此方法无法持续工作,我尝试使用@Url发送请求


尽管如此,很多时候请求在“*”(星号)处中断

此解决方案并非始终保持一致性。