首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android改造在端点添加共享偏好值

Android改造在端点添加共享偏好值
EN

Stack Overflow用户
提问于 2017-05-24 10:36:44
回答 3查看 1.1K关注 0票数 0

我是在安卓系统中使用改造的新手。我有一个get请求,它以良好的方式工作,但我希望在URL的端点中包含共享首选项的值。假设我的端点Url是:

代码语言:javascript
运行
复制
public interface Data{
    @GET("/myphone/extra/pull/Sharedpreferencevalue") //add shared preference value here
}

我可以在改造中这样做吗?或者我必须用其他的方法?或者如何在改造中做到?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-24 10:42:58

您可以按以下方式动态添加参数:

代码语言:javascript
运行
复制
@GET("/myphone/extra/pull/{Sharedpreferencevalue}")
Call<YourResponseClass> getData(@Path("Sharedpreferencevalue") String value);
票数 0
EN

Stack Overflow用户

发布于 2017-05-24 10:42:54

您可以使用@Path注释以编程方式向端点添加值,并在您的retrofit服务接口中执行类似的操作:

代码语言:javascript
运行
复制
@GET("/myphone/extra/pull/{sharedprefValue}")
Call<EntityName> getPref(@Path("sharedprefValue") String pref);
票数 0
EN

Stack Overflow用户

发布于 2017-05-24 12:36:42

动态地对retrofit2使用urls,如下所示。

在你的界面上

代码语言:javascript
运行
复制
 @GET
public Call<ResponseBody> fetchMileage(@Url String url);

用这种方式

代码语言:javascript
运行
复制
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
    Retrofit.Builder builder = new Retrofit.Builder()
                    .baseUrl(ROOT_URL)
                    .addConverterFactory(GsonConverterFactory.create());
    Retrofit retrofit =  builder.client( httpClient.build()).build();
    MyInterface myInterface = retrofit.create(MyInterface.class);
    Call<ResponseBody> result = myInterface.fetchMileage(endpointUrl);
    result.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            String output ="";
            if (response.isSuccessful()) {
                try {

                    output = response.body().string();


                }catch (IOException e)
                {
                    e.printStackTrace();
                }


            }else{
            }

        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable throwable) {
            //Toast.makeText(context,"Error "+throwable.getMessage(),Toast.LENGTH_LONG).show();
            throwable.printStackTrace();
        }
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44155923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档