改造获得字符串响应

时间:2016-06-02 10:43:43

标签: android retrofit android-networking

是否可以使用Retrofit库仅接收String响应?我有一种情况,我需要在我的链接上添加查询,以便链接看起来像: 本地主机//注册?处理= SomeID

SomeID是整数,当我这样做时,我将以字符串格式从服务器接收包含20个字符的响应。我怎样才能得到答复? Can Retrofit甚至可以处理不是Json格式的响应吗?

另外我应该如何创建:

@GET( “/ API / UserMainInformations”)     调用getUserMainInfo();

这是其他一些调用的例子但现在我没有任何模型可以发送它因为我只在Query上添加它。我应该在Call<>中加入什么;

2 个答案:

答案 0 :(得分:20)

您可以从api获取响应并将其转换为字符串,如下所示:

 public interface RetrofitService{
        @GET("/users")
        Call<ResponseBody> listRepos();//function to call api
    }

    RetrofitService service = retrofit.create(RetrofitService.class);
    Call<ResponseBody> result = service.listRepos(username);
    result.enqueue(new Callback<ResponseBody>() {

    @Override
    public void onResponse(Response<ResponseBody> response) {
        try {
            System.out.println(response.body().string());//convert reponse to string
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onFailure(Throwable t) {
        e.printStackTrace();
    }
});

答案 1 :(得分:7)

试试这个:

Api界面:

public interface APIService {
@GET("api/get_info")
    Call<ResponseBody> getInfo();//import okhttp3.ResponseBody;
}

Api电话:

// Retrofit service creation code skipped here
String json = retrofitService().getInfo().execute().body().string();

它对我有用。我使用改造:2.1.0。