无法为类com.squareup.okhttp.ResponseBody创建转换器

时间:2016-11-17 00:24:20

标签: java android retrofit

改造文档说:

"默认情况下,Retrofit只能将HTTP正文反序列化为OkHttp< ResponseBody ...可以添加转换器以支持其他类型"

这意味着我应该能够使用GSON转换器进行api调用 WIHTOUT,并以" ResponseBody"的形式得到我的回复。对象

但我仍然收到错误

java.lang.IllegalArgumentException: Unable to create converter for class com.squareup.okhttp.ResponseBody

这是我的代码

    @GET("v1/search")
    Call<ResponseBody> getArtists(@Query("q") String name, @Query("type") String searchType);
    Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl("https://api.spotify.com/")
                    .build();

    api = retrofit.create(SpotifyApi.class);

    api.getArtists(searchBox.getText().toString(), "artist")
                             .enqueue(new Callback<ResponseBody>() {
                                 @Override
                                 public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

                                 }

                                 @Override
                                 public void onFailure(Call<ResponseBody> call, Throwable t) {

                                 }
                             });

基本上我希望能够以最纯粹/最简单的形式使用Retrofit,并获得基本/原始响应。这不是一个真正的应用程序,它是实验。

1 个答案:

答案 0 :(得分:5)

您需要使用OkHttp 3.x中的okhttp3.ResponseBody(Retrofit所依赖的)。该错误消息表明您正在使用OkHttp 2.x中的类型。