2017-11-06 5 views
0

I'am変換:エラーがresponse.bodyを取得し、YouTubeのAPIアドレスからGSONを取得するために改造2.0を使用して文字列

Link (temporarily static) for Youtube Address

GSON from Youtube address

しかし、私は応答からVIDEOIDを取得しようとすると、それはうまくいきません!

マイコード:

​​

マイインタフェース:

public interface YoutubeApiURL { 

@GET("youtube/v3/playlistItems") 
Call<Videos> listVideos (
    @Query("part") String part, 
    @Query("maxResults") String maxResults, 
    @Query("playlistId") String playlistId, 
    @Query("fields") String fields, 
    @Query("key") String key 
); 
} 

そして、ここに私のMainActivity:私は私のコードを実行したとき

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

button = (Button)findViewById(R.id.btn_play); 
youTubePlayerView = (YouTubePlayerView)findViewById(R.id.youtube_player_view); 
    btnListar = (Button)findViewById(R.id.btnListaGitHub); 

    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("https://www.googleapis.com/") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

    YoutubeApiURL service = retrofit.create(YoutubeApiURL.class); 


    Call<Videos> videos = service.listVideos(
      "snippet", 
      "50", 
      "PLbZ3V_t0ZLzylEoYuPtmT5uArAzMewz-m", 
      "items/snippet/resourceId/videoId", 
      "AIzaSyAH2YDhp_Yle3NhLeCuBqH654lUre4vDHw"); 

    myURL = videos.request().url().toString(); 
    Log.i("ListVideos", myURL); 


    videos.enqueue(new Callback<Videos>() { 
     @Override 
     public void onResponse(Call<Videos> call, Response<Videos> response) { 

      if (response.isSuccessful()) { 
       Log.i("ListVideos","Works!"); 
       // Here some code to show de videoIds return 
      } else { 
       Log.i("ListVideos","Something wrong"); 
      } 

     } 

     @Override 
     public void onFailure(Call<Videos> call, Throwable t) { 
      Log.i("ListVideos: ", t.getLocalizedMessage()); 
     } 
    }); 

それがいることを私に示して、 "ワークス!"しかし、私はいくつかの方法でビデオIDを取得しようとしましたが成功しませんでした! 私は間違っていますか?

答えて

0

モデルクラスを間違っています。

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

import java.util.List; 

public class Videos { 

@SerializedName("items") 
@Expose 
private List<Item> items = null; 

public List<Item> getItems() { 
    return items; 
} 

public void setItems(List<Item> items) { 
    this.items = items; 
} 

public Videos withItems(List<Item> items) { 
    this.items = items; 
    return this; 
} 

} 

スニペット

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class Snippet { 

@SerializedName("resourceId") 
@Expose 
private ResourceId resourceId; 

public ResourceId getResourceId() { 
    return resourceId; 
} 

public void setResourceId(ResourceId resourceId) { 
    this.resourceId = resourceId; 
} 

public Snippet withResourceId(ResourceId resourceId) { 
    this.resourceId = resourceId; 
    return this; 
} 

} 

RESOURCEID

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class ResourceId { 

@SerializedName("videoId") 
@Expose 
private String videoId; 

public String getVideoId() { 
    return videoId; 
} 

public void setVideoId(String videoId) { 
    this.videoId = videoId; 
} 

public ResourceId withVideoId(String videoId) { 
    this.videoId = videoId; 
    return this; 
} 

} 

ビデオ下の項目を試してみてください

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class Item { 

@SerializedName("snippet") 
@Expose 
private Snippet snippet; 

public Snippet getSnippet() { 
    return snippet; 
} 

public void setSnippet(Snippet snippet) { 
    this.snippet = snippet; 
} 

public Item withSnippet(Snippet snippet) { 
    this.snippet = snippet; 
    return this; 
} 

} 

今すぐ取得する動画IDを成功のコードで使用する

+0

ありがとう@Munir !!今すぐうまくいく!あなたはあなたの男です! – Andre

+0

@Andreあなたを助けてくれることを嬉しく思います。答えがあなたを助けてくれたら正解としてそ​​れを受け入れることを忘れてはいけません。 – Munir

関連する問題