如何使用Retrofit 2获取String作为响应?

Ale*_*nko -1 java android retrofit2

我想了解Retrofit的工作原理,但官方文档非常薄弱.

我需要提出一个非常简单的GET请求,并将响应作为一个String.

现在我使用标准HTTPUrlConnection,它工作得很好,只是请求 - 响应

任何人都可以告诉我如何获得String响应而不将其转换为对象或类似的东西?

Ste*_*hyn 6

您可以将ScalarsConverterFactory用于字符串,将基元和它们的盒装类型用于文本/纯文本体.将此依赖项添加到build.gradle文件中:

compile 'com.squareup.retrofit2:converter-scalars:2.1.0'
Run Code Online (Sandbox Code Playgroud)

试试这个:

public interface ExampleService {
@GET("/users/{user}/repos")
Call<String> listRepos(@Path("user") String user);
}
Run Code Online (Sandbox Code Playgroud)

并将ScalarsConverterFactory添加到您的构建器:

Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.build();
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样检索此字符串:

Call<String> call = exampleService.listRepos(user);
Response<String> response = call.execute();  
String value = response.body();  
Run Code Online (Sandbox Code Playgroud)