Java 改型查询不带符号
我试图向使用分号(;)的API发送请求,而不是使用符号(&)作为查询参数,url请求如下所示:Java 改型查询不带符号,java,android,retrofit2,Java,Android,Retrofit2,我试图向使用分号(;)的API发送请求,而不是使用符号(&)作为查询参数,url请求如下所示: http://api.example.com/path/?param1=p1;param2=p2 我在互联网上找到的最相似的建议是使用另一种方法,将url部分放在一起,然后使用@url注释 对于这些情况,改装是否包含任何解决方案 谢谢。可以使用拦截器将URL从使用“&”重写为“;”。棘手的部分是以一种不会使URL无效的方式进行 new Interceptor() { Response int
http://api.example.com/path/?param1=p1;param2=p2
我在互联网上找到的最相似的建议是使用另一种方法,将url部分放在一起,然后使用@url
注释
对于这些情况,改装是否包含任何解决方案
谢谢。可以使用
拦截器
将URL从使用“&”重写为“;”。棘手的部分是以一种不会使URL无效的方式进行
new Interceptor() {
Response intercept(Chain chain) throws IOException {
HttpUrl originalUrl = chain.request().url();
String query = originalUrl.encodedQuery();
if (query == null) {
return chain.proceed(chain.request());
} else {
Request.Builder builder = chain.request().newBuilder();
builder.url(originalUrl.newBuilder()
.encodedQuery(query.replace('&', ';'))
.build());
return chain.proceed(builder.build());
}
}
};
此OkHttp(支持改造的网络库)拦截器将检查给定URL是否有查询,并将查询部分中的任何“&”替换为“;”。理论上,这应该按照您指定的方式进行
可以通过自己创建
OkHttpClient
实例并在构建时安装上述拦截器来应用它。?听起来你的API非常非常糟糕。你确定它们不仅仅是矩阵参数吗?@chrylis老实说,我不知道!似乎已经有一个问题与我的问题有关: