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

Sia*_*ash 5 java android retrofit

改造文件说:

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

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

但我仍然得到错误

java.lang.IllegalArgumentException: Unable to create converter for class com.squareup.okhttp.ResponseBody
Run Code Online (Sandbox Code Playgroud)

这是我的代码

    @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) {

                                 }
                             });
Run Code Online (Sandbox Code Playgroud)

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

Jak*_*ton 6

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

  • 我写了Retrofit 2并为OkHttp 3做出贡献:) (9认同)
  • 天哪,你太棒了!如果您能解释一下您是如何想到这一点的,我将非常感激 (2认同)