Retrofit retrofit = new Retrofit.Builder() ,只返回字符串怎么写?
在 Retrofit 中,如果你希望一个请求只返回字符串,那么可以将服务方法的返回类型设为 ResponseBody
。然后,你可以调用 ResponseBody.string()
方法来获取字符串内容。
首先,定义一个服务接口:
public interface MyService {
@GET("user/profile")
Call<ResponseBody> getUserProfile();
}
然后,创建 Retrofit 对象并调用这个接口:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com/")
.build();
MyService service = retrofit.create(MyService.class);
Call<ResponseBody> call = service.getUserProfile();
// 执行同步或异步请求
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.isSuccessful()) {
try {
String responseBody = response.body().string();
// 使用 responseBody
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
// 处理错误
}
});
在以上代码中,我们首先使用 Retrofit Builder 创建了一个新的 Retrofit 实例,然后创建了一个 MyService
实例,并调用其 getUserProfile
方法以创建一个 Call
对象。然后使用 enqueue
方法发送异步请求,并在回调中处理响应和错误。注意,当响应成功时,我们使用 ResponseBody.string()
方法来获取响应体的字符串表示。
这个示例中的 URL 和服务方法是假设的,你需要根据实际 API 调整它