Android Retrofit编码URL

时间:2015-12-06 00:54:45

标签: android retrofit

我正在使用改装2,当我想调用像base / first / second这样的url时 斜杠转换为%2F 根据改装官方文件,我应该可以使用

(@ Path(value =" address",encode = false)

但Android工作室说:    找不到符号方法encode()

3 个答案:

答案 0 :(得分:0)

尝试 -

encoded=false。不是encode=false

答案 1 :(得分:0)

是的,我从改造中遇到了这个问题,我解决了这个问题:

很快,您的回答是: (@Path(value ="address", encode = false) String address)

例如,我们的链接是:https://mobile.test/android

首先,您的Builder希望拥有 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}"):

@GET("/{address}") void getExampleModels(@Path(value = "address", encode = false) String address, Callback<exampleModel> callback);

最后,您可以使用String参数调用它而不会出现错误:

getYourClass().getExampleModels(
            "mobile.test/android",
            newCallback<exampleModel>(){ 
                . . . 
            });

度过愉快的一天。

答案 2 :(得分:0)

Emma 说的,但实际上encoded=true 不是假的。