我正在使用Retrofit 2,当我想调用像base/first/second这样的url时,斜杠会被转换为%2F。根据Retrofit官方文档,我应该能够使用
(@Path(value = "address" , encode = false)
但是Android Studio显示:
无法找到符号方法encode()
请尝试使用encoded=false
而不是encode=false
我之前也遇到了Retrofit的这个问题,但我已经解决了:
简而言之,你需要这样写: (@Path(value ="address", encode = false) String address)
例如我们的链接是:https://mobile.test/android
首先,你的构建器需要一个setEndpoint()方法。你可以传入"http:/"或"https:/".
RestAdapter.Builder restBuilder = new RestAdapter.Builder()
.setEndpoint("https://")
.setConverter(new GsonConverter(gson))
.setClient(new OkClient(new OkHttpClient()));
return restBuilder.build();
@GET("/{address}") void getExampleModels(@Path(value = "address", encode = false) String address, Callback<exampleModel> callback);
getYourClass().getExampleModels(
"mobile.test/android",
newCallback<exampleModel>(){
. . .
});
祝你有美好的一天。
Emma所说的是对的,但实际上应该是 encoded=true
而不是 false。