2016-11-17 107 views
4

改造文檔說:無法創建類com.squareup.okhttp.ResponseBody轉換器

「默認情況下,改造只能反序列化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) { 

           } 
          }); 

基本上是我希望能夠以最純粹的/最簡單的形式使用改造,只是得到一個基本的/生迴應。這不是一個真正的應用程序,它是用於實驗。

回答

3

您需要使用OkHttp 3.x中的okhttp3.ResponseBody(其中Retrofit依賴於)。該錯誤消息表明您正在使用OkHttp 2.x中的類型。

+0

omg你真了不起!我真的很感激,如果你解釋了你是怎麼想出來的 – Siavash

+3

我寫了Retrofit 2並貢獻給OkHttp 3 :) –

+0

是的,我在寫那篇文章後馬上想到了哈哈,非常感謝你,你們是最棒的! – Siavash