【发布时间】:2017-11-06 01:13:02
【问题描述】:
我正在使用改造 2.0 从 Youtube API 地址获取 GSON:
Link (temporarily static) for Youtube Address
但是当我尝试从 response.body 获取 videoID 时,它不起作用!
我的代码:
public class Videos {
@com.google.gson.annotations.SerializedName("videoId") String mVideoId;
@com.google.gson.annotations.SerializedName("title") String mTitle;
public Videos(String videoId, String title ) {
this.mVideoId = videoId;
this.mTitle = title;
}
public String getmVideoId() {
return mVideoId;
}
public void setmVideoId(String mVideoId) {
this.mVideoId = mVideoId;
}
public String getmTitle() {
return mTitle;
}
public void setmTitle(String mTitle) {
this.mTitle = mTitle;
}
}
我的界面:
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());
}
});
当我运行我的代码时,它向我显示“有效!”,但我尝试了多种方法来获取 videoID,但均未成功! 我做错了什么?
【问题讨论】:
标签: android youtube youtube-api retrofit2