Android Http请求与改型和RxJava

Android Http请求与改型和RxJava,android,rx-java,rx-android,Android,Rx Java,Rx Android,我正在请求一个带有改进2库的web服务API。我有以下API URL代码: String ENDPOINT = "https://api.trakt.tv/"; @GET("movies/popular?limit=10&extended=full,images") public Observable<PopularMoviesResponse> getPopularMovies(@Header("trakt-api-version") String trakt_api_v

我正在请求一个带有改进2库的web服务API。我有以下API URL代码:

String ENDPOINT = "https://api.trakt.tv/";

@GET("movies/popular?limit=10&extended=full,images")
public Observable<PopularMoviesResponse> getPopularMovies(@Header("trakt-api-version") String trakt_api_version,
                                                  @Header("trakt-api-key") String trakt_api_key,
                                                  @Query("page") String page);
web服务API的URL,可通过以下链接找到:

PopularMovies响应POJO类

公共类PopularMoviesResponse{

private String OdataContext;
private List<PopularMovies> popularMovies = new ArrayList<PopularMovies>();


/**
 * 
 * @param OdataContext
 *     The @odata.context
 */
public void setOdataContext(String OdataContext) {
    this.OdataContext = OdataContext;
}

/**
 * 
 * @return
 *     The value
 */
public List<PopularMovies> getPopularMovies() {
    return popularMovies;
}

/**
 *
 * @param popularMovies
 */
public void setPopularMovies(List<PopularMovies> popularMovies) {
    this.popularMovies = popularMovies;
}
私有字符串OdataContext;
private List popularMovies=new ArrayList();
/**
* 
*@param-OdataContext
*@odata.context
*/
公共无效setOdataContext(字符串OdataContext){
this.OdataContext=OdataContext;
}
/**
* 
*@返回
*价值
*/
公共列表getPopularMovies(){
回归大众生活;
}
/**
*
*@param popularMovies
*/
公共无效设置popularMovies(列出popularMovies){
this.popularMovies=popularMovies;
}
}

平民阶级

@生成(“org.jsonschema2pojo”) 公共阶层的大众生活{

@SerializedName("title")
@Expose
private String title;
@SerializedName("year")
@Expose
private long year;
@SerializedName("ids")
@Expose
private Ids ids;
@SerializedName("tagline")
@Expose
private String tagline;
@SerializedName("overview")
@Expose
private String overview;
@SerializedName("released")
@Expose
private String released;
@SerializedName("runtime")
@Expose
private long runtime;
@SerializedName("trailer")
@Expose
private String trailer;
@SerializedName("homepage")
@Expose
private String homepage;
@SerializedName("rating")
@Expose
private double rating;
@SerializedName("votes")
@Expose
private long votes;
@SerializedName("updated_at")
@Expose
private String updatedAt;
@SerializedName("language")
@Expose
private String language;
@SerializedName("available_translations")
@Expose
private List<String> availableTranslations = new ArrayList<String>();
@SerializedName("genres")
@Expose
private List<String> genres = new ArrayList<String>();
@SerializedName("certification")
@Expose
private String certification;
@SerializedName("images")
@Expose
private Images images;

/**
 * No args constructor for use in serialization
 * 
 */
public PopularMovies() {
}

/**
 * 
 * @param trailer
 * @param genres
 * @param availableTranslations
 * @param ids
 * @param votes
 * @param runtime
 * @param homepage
 * @param released
 * @param updatedAt
 * @param certification
 * @param title
 * @param overview
 * @param images
 * @param year
 * @param language
 * @param rating
 * @param tagline
 */
public PopularMovies(String title, long year, Ids ids, String tagline, String overview, String released, long runtime, String trailer, String homepage, double rating, long votes, String updatedAt, String language, List<String> availableTranslations, List<String> genres, String certification, Images images) {
    this.title = title;
    this.year = year;
    this.ids = ids;
    this.tagline = tagline;
    this.overview = overview;
    this.released = released;
    this.runtime = runtime;
    this.trailer = trailer;
    this.homepage = homepage;
    this.rating = rating;
    this.votes = votes;
    this.updatedAt = updatedAt;
    this.language = language;
    this.availableTranslations = availableTranslations;
    this.genres = genres;
    this.certification = certification;
    this.images = images;
}

/**
 * 
 * @return
 *     The title
 */
public String getTitle() {
    return title;
}

/**
 * 
 * @param title
 *     The title
 */
public void setTitle(String title) {
    this.title = title;
}

public PopularMovies withTitle(String title) {
    this.title = title;
    return this;
}

/**
 * 
 * @return
 *     The year
 */
public long getYear() {
    return year;
}

/**
 * 
 * @param year
 *     The year
 */
public void setYear(long year) {
    this.year = year;
}

public PopularMovies withYear(long year) {
    this.year = year;
    return this;
}

/**
 * 
 * @return
 *     The ids
 */
public Ids getIds() {
    return ids;
}

/**
 * 
 * @param ids
 *     The ids
 */
public void setIds(Ids ids) {
    this.ids = ids;
}

public PopularMovies withIds(Ids ids) {
    this.ids = ids;
    return this;
}

/**
 * 
 * @return
 *     The tagline
 */
public String getTagline() {
    return tagline;
}

/**
 * 
 * @param tagline
 *     The tagline
 */
public void setTagline(String tagline) {
    this.tagline = tagline;
}

public PopularMovies withTagline(String tagline) {
    this.tagline = tagline;
    return this;
}

/**
 * 
 * @return
 *     The overview
 */
public String getOverview() {
    return overview;
}

/**
 * 
 * @param overview
 *     The overview
 */
public void setOverview(String overview) {
    this.overview = overview;
}

public PopularMovies withOverview(String overview) {
    this.overview = overview;
    return this;
}

/**
 * 
 * @return
 *     The released
 */
public String getReleased() {
    return released;
}

/**
 * 
 * @param released
 *     The released
 */
public void setReleased(String released) {
    this.released = released;
}

public PopularMovies withReleased(String released) {
    this.released = released;
    return this;
}

/**
 * 
 * @return
 *     The runtime
 */
public long getRuntime() {
    return runtime;
}

/**
 * 
 * @param runtime
 *     The runtime
 */
public void setRuntime(long runtime) {
    this.runtime = runtime;
}

public PopularMovies withRuntime(long runtime) {
    this.runtime = runtime;
    return this;
}

/**
 * 
 * @return
 *     The trailer
 */
public String getTrailer() {
    return trailer;
}

/**
 * 
 * @param trailer
 *     The trailer
 */
public void setTrailer(String trailer) {
    this.trailer = trailer;
}

public PopularMovies withTrailer(String trailer) {
    this.trailer = trailer;
    return this;
}

/**
 * 
 * @return
 *     The homepage
 */
public String getHomepage() {
    return homepage;
}

/**
 * 
 * @param homepage
 *     The homepage
 */
public void setHomepage(String homepage) {
    this.homepage = homepage;
}

public PopularMovies withHomepage(String homepage) {
    this.homepage = homepage;
    return this;
}

/**
 * 
 * @return
 *     The rating
 */
public double getRating() {
    return rating;
}

/**
 * 
 * @param rating
 *     The rating
 */
public void setRating(double rating) {
    this.rating = rating;
}

public PopularMovies withRating(double rating) {
    this.rating = rating;
    return this;
}

/**
 * 
 * @return
 *     The votes
 */
public long getVotes() {
    return votes;
}

/**
 * 
 * @param votes
 *     The votes
 */
public void setVotes(long votes) {
    this.votes = votes;
}

public PopularMovies withVotes(long votes) {
    this.votes = votes;
    return this;
}

/**
 * 
 * @return
 *     The updatedAt
 */
public String getUpdatedAt() {
    return updatedAt;
}

/**
 * 
 * @param updatedAt
 *     The updated_at
 */
public void setUpdatedAt(String updatedAt) {
    this.updatedAt = updatedAt;
}

public PopularMovies withUpdatedAt(String updatedAt) {
    this.updatedAt = updatedAt;
    return this;
}

/**
 * 
 * @return
 *     The language
 */
public String getLanguage() {
    return language;
}

/**
 * 
 * @param language
 *     The language
 */
public void setLanguage(String language) {
    this.language = language;
}

public PopularMovies withLanguage(String language) {
    this.language = language;
    return this;
}

/**
 * 
 * @return
 *     The availableTranslations
 */
public List<String> getAvailableTranslations() {
    return availableTranslations;
}

/**
 * 
 * @param availableTranslations
 *     The available_translations
 */
public void setAvailableTranslations(List<String> availableTranslations) {
    this.availableTranslations = availableTranslations;
}

public PopularMovies withAvailableTranslations(List<String> availableTranslations) {
    this.availableTranslations = availableTranslations;
    return this;
}

/**
 * 
 * @return
 *     The genres
 */
public List<String> getGenres() {
    return genres;
}

/**
 * 
 * @param genres
 *     The genres
 */
public void setGenres(List<String> genres) {
    this.genres = genres;
}

public PopularMovies withGenres(List<String> genres) {
    this.genres = genres;
    return this;
}

/**
 * 
 * @return
 *     The certification
 */
public String getCertification() {
    return certification;
}

/**
 * 
 * @param certification
 *     The certification
 */
public void setCertification(String certification) {
    this.certification = certification;
}

public PopularMovies withCertification(String certification) {
    this.certification = certification;
    return this;
}

/**
 * 
 * @return
 *     The images
 */
public Images getImages() {
    return images;
}

/**
 * 
 * @param images
 *     The images
 */
public void setImages(Images images) {
    this.images = images;
}

public PopularMovies withImages(Images images) {
    this.images = images;
    return this;
}
@SerializedName(“标题”)
@暴露
私有字符串标题;
@序列化名称(“年”)
@暴露
私人长年;
@序列化名称(“ID”)
@暴露
私有id;
@SerializedName(“标语”)
@暴露
私有字符串标语;
@序列化名称(“概述”)
@暴露
私有字符串概述;
@SerializedName(“已发布”)
@暴露
释放私人字符串;
@SerializedName(“运行时”)
@暴露
私有长时间运行;
@序列化名称(“拖车”)
@暴露
私家拖车;
@序列化名称(“主页”)
@暴露
私人字符串主页;
@序列化名称(“评级”)
@暴露
私人双重评级;
@序列化名称(“投票”)
@暴露
私人长票;
@SerializedName(“更新时间”)
@暴露
私有字符串更新数据;
@序列化名称(“语言”)
@暴露
私有字符串语言;
@SerializedName(“可用的\u翻译”)
@暴露
private List availableTranslations=new ArrayList();
@序列化名称(“流派”)
@暴露
私有列表类型=新的ArrayList();
@序列化名称(“认证”)
@暴露
私有字符串认证;
@序列化名称(“图像”)
@暴露
私人图像;
/**
*没有用于序列化的args构造函数
* 
*/
公众生活(){
}
/**
* 
*@param拖车
*@param流派
*@param-availableTranslations
*@param-id
*@param投票
*@param运行时
*@param主页
*@param已发布
*@param updatedAt
*@param认证
*@param title
*@param概述
*@param图像
*@param年
*@param语言
*@param评级
*@param标语
*/
公共大众视频(字符串标题、长年份、Ids ID、字符串标语、字符串概述、字符串发布、长运行时间、字符串预告片、字符串主页、双重评级、长投票、字符串更新日期、字符串语言、列表可用翻译、列表类型、字符串认证、图像){
this.title=标题;
今年=年;
this.ids=ids;
this.tagline=tagline;
this.overview=概述;
这个被释放了;
this.runtime=运行时;
this.trail=拖车;
this.homepage=主页;
这个。评级=评级;
这.投票=投票;
this.updatedAt=updatedAt;
这种语言=语言;
this.availableTranslations=availableTranslations;
this.genres=流派;
此认证=认证;
这个。图像=图像;
}
/**
* 
*@返回
*标题
*/
公共字符串getTitle(){
返回标题;
}
/**
* 
*@param title
*标题
*/
公共无效集合标题(字符串标题){
this.title=标题;
}
带标题的公共PopularMovies(字符串标题){
this.title=标题;
归还这个;
}
/**
* 
*@返回
*年度
*/
公共长假年(){
回归年;
}
/**
* 
*@param年
*年度
*/
公共年(长年){
今年=年;
}
年内的公众活动(长年){
今年=年;
归还这个;
}
/**
* 
*@返回
*身份证
*/
公共Ids getIds(){
返回ID;
}
/**
* 
*@param-id
*身份证
*/
公共无效集合ID(ID){
this.ids=ids;
}
具有ID的公共大众视频(Ids){
this.ids=ids;
归还这个;
}
/**
* 
*@返回
*口号
*/
公共字符串getTagline(){
回归口号;
}
/**
* 
*@param标语
*口号
*/
公共无效设置标记行(字符串标记行){
this.tagline=tagline;
}
带有标语的公众视频(字符串标语){
this.tagline=tagline;
归还这个;
}
/**
* 
*@返回
*概述
*/
公共字符串getOverview(){
退货概述;
}
/**
* 
*@param概述
*概述
*/
公共void集合概述(字符串概述){
this.overview=概述;
}
公共PopularMovies withOverview(字符串概述){
this.overview=概述;
归还这个;
}
/**
* 
*@返回
*释放
*/
公共字符串getReleased(){
返回已释放;
}
/**
* 
*@param已发布
*释放
*/
公共void setReleased(字符串已释放){
这个被释放了;
}
已发布的公共PopularMovies(字符串已发布){
这个被释放了;
归还这个;
}
/**
* 
*@返回
*运行时
*/
公共长getRuntime(){
返回运行时;
}
/**
* 
*@param运行时
*运行时
*/
公共void setRuntime(长运行时){
this.runtime=运行时;
}
具有运行时的公共PopularMovies(长运行时){
this.runtime=运行时;
归还这个;
}
/**
* 
*@返回
*拖车
*/
公共字符串getTrailer(){
返回拖车;
}
/**
* 
*@param拖车
*拖车
*/
公共拖车(字符串拖车){
this.trail=拖车;
}
带拖车的公众视频(字符串拖车){
this.trail=拖车;
归还这个;
}
/**
* 
*@返回
*主页
*/
公共字符串getHomepage(){
返回主页;
}
/**
* 
*@param主页
*主页
*/
公共主页(字符串主页){
this.homepage=主页;
}
公共大众主页(字符串主页){
this.homepage=主页;
归还这个;
}
/**
* 
*@返回
*评级
*/
公共双重评级(){
回报率;
}
/**
* 
*@param评级
*评级
*/
公共空集
07-20 12:15:16.547 2056-2056/org.unrwa.edits W/System.err: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
07-20 12:15:16.548 2056-2056/org.unrwa.edits W/System.err:     at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:221)
07-20 12:15:16.549 2056-2056/org.unrwa.edits W/System.err:     at com.google.gson.TypeAdapter.fromJson(TypeAdapter.java:260)
07-20 12:15:16.549 2056-2056/org.unrwa.edits W/System.err:     at retrofit2.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:33)
07-20 12:15:16.549 2056-2056/org.unrwa.edits W/System.err:     at retrofit2.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:23)
07-20 12:15:16.550 2056-2056/org.unrwa.edits W/System.err:     at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:154)
07-20 12:15:16.550 2056-2056/org.unrwa.edits W/System.err:     at retrofit2.OkHttpCall.execute(OkHttpCall.java:118)
07-20 12:15:16.550 2056-2056/org.unrwa.edits W/System.err:     at retrofit2.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:107)
07-20 12:15:16.551 2056-2056/org.unrwa.edits W/System.err:     at retrofit2.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:88)
07-20 12:15:16.551 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:162)
07-20 12:15:16.552 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:154)
07-20 12:15:16.552 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:162)
07-20 12:15:16.552 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:154)
07-20 12:15:16.553 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:162)
07-20 12:15:16.553 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:154)
07-20 12:15:16.553 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:162)
07-20 12:15:16.554 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:154)
07-20 12:15:16.555 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:162)
07-20 12:15:16.555 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable$2.call(Observable.java:154)
07-20 12:15:16.556 2056-2056/org.unrwa.edits W/System.err:     at rx.Observable.unsafeSubscribe(Observable.java:8098)
07-20 12:15:16.556 2056-2056/org.unrwa.edits W/System.err:     at rx.internal.operators.OperatorSubscribeOn$1$1.call(OperatorSubscribeOn.java:62)
07-20 12:15:16.556 2056-2056/org.unrwa.edits W/System.err:     at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
07-20 12:15:16.557 2056-2056/org.unrwa.edits W/System.err:     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
07-20 12:15:16.557 2056-2056/org.unrwa.edits W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-20 12:15:16.558 2056-2056/org.unrwa.edits W/System.err:     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
07-20 12:15:16.558 2056-2056/org.unrwa.edits W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
07-20 12:15:16.558 2056-2056/org.unrwa.edits W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
07-20 12:15:16.559 2056-2056/org.unrwa.edits W/System.err:     at java.lang.Thread.run(Thread.java:818)
private String OdataContext;
private List<PopularMovies> popularMovies = new ArrayList<PopularMovies>();


/**
 * 
 * @param OdataContext
 *     The @odata.context
 */
public void setOdataContext(String OdataContext) {
    this.OdataContext = OdataContext;
}

/**
 * 
 * @return
 *     The value
 */
public List<PopularMovies> getPopularMovies() {
    return popularMovies;
}

/**
 *
 * @param popularMovies
 */
public void setPopularMovies(List<PopularMovies> popularMovies) {
    this.popularMovies = popularMovies;
}
@SerializedName("title")
@Expose
private String title;
@SerializedName("year")
@Expose
private long year;
@SerializedName("ids")
@Expose
private Ids ids;
@SerializedName("tagline")
@Expose
private String tagline;
@SerializedName("overview")
@Expose
private String overview;
@SerializedName("released")
@Expose
private String released;
@SerializedName("runtime")
@Expose
private long runtime;
@SerializedName("trailer")
@Expose
private String trailer;
@SerializedName("homepage")
@Expose
private String homepage;
@SerializedName("rating")
@Expose
private double rating;
@SerializedName("votes")
@Expose
private long votes;
@SerializedName("updated_at")
@Expose
private String updatedAt;
@SerializedName("language")
@Expose
private String language;
@SerializedName("available_translations")
@Expose
private List<String> availableTranslations = new ArrayList<String>();
@SerializedName("genres")
@Expose
private List<String> genres = new ArrayList<String>();
@SerializedName("certification")
@Expose
private String certification;
@SerializedName("images")
@Expose
private Images images;

/**
 * No args constructor for use in serialization
 * 
 */
public PopularMovies() {
}

/**
 * 
 * @param trailer
 * @param genres
 * @param availableTranslations
 * @param ids
 * @param votes
 * @param runtime
 * @param homepage
 * @param released
 * @param updatedAt
 * @param certification
 * @param title
 * @param overview
 * @param images
 * @param year
 * @param language
 * @param rating
 * @param tagline
 */
public PopularMovies(String title, long year, Ids ids, String tagline, String overview, String released, long runtime, String trailer, String homepage, double rating, long votes, String updatedAt, String language, List<String> availableTranslations, List<String> genres, String certification, Images images) {
    this.title = title;
    this.year = year;
    this.ids = ids;
    this.tagline = tagline;
    this.overview = overview;
    this.released = released;
    this.runtime = runtime;
    this.trailer = trailer;
    this.homepage = homepage;
    this.rating = rating;
    this.votes = votes;
    this.updatedAt = updatedAt;
    this.language = language;
    this.availableTranslations = availableTranslations;
    this.genres = genres;
    this.certification = certification;
    this.images = images;
}

/**
 * 
 * @return
 *     The title
 */
public String getTitle() {
    return title;
}

/**
 * 
 * @param title
 *     The title
 */
public void setTitle(String title) {
    this.title = title;
}

public PopularMovies withTitle(String title) {
    this.title = title;
    return this;
}

/**
 * 
 * @return
 *     The year
 */
public long getYear() {
    return year;
}

/**
 * 
 * @param year
 *     The year
 */
public void setYear(long year) {
    this.year = year;
}

public PopularMovies withYear(long year) {
    this.year = year;
    return this;
}

/**
 * 
 * @return
 *     The ids
 */
public Ids getIds() {
    return ids;
}

/**
 * 
 * @param ids
 *     The ids
 */
public void setIds(Ids ids) {
    this.ids = ids;
}

public PopularMovies withIds(Ids ids) {
    this.ids = ids;
    return this;
}

/**
 * 
 * @return
 *     The tagline
 */
public String getTagline() {
    return tagline;
}

/**
 * 
 * @param tagline
 *     The tagline
 */
public void setTagline(String tagline) {
    this.tagline = tagline;
}

public PopularMovies withTagline(String tagline) {
    this.tagline = tagline;
    return this;
}

/**
 * 
 * @return
 *     The overview
 */
public String getOverview() {
    return overview;
}

/**
 * 
 * @param overview
 *     The overview
 */
public void setOverview(String overview) {
    this.overview = overview;
}

public PopularMovies withOverview(String overview) {
    this.overview = overview;
    return this;
}

/**
 * 
 * @return
 *     The released
 */
public String getReleased() {
    return released;
}

/**
 * 
 * @param released
 *     The released
 */
public void setReleased(String released) {
    this.released = released;
}

public PopularMovies withReleased(String released) {
    this.released = released;
    return this;
}

/**
 * 
 * @return
 *     The runtime
 */
public long getRuntime() {
    return runtime;
}

/**
 * 
 * @param runtime
 *     The runtime
 */
public void setRuntime(long runtime) {
    this.runtime = runtime;
}

public PopularMovies withRuntime(long runtime) {
    this.runtime = runtime;
    return this;
}

/**
 * 
 * @return
 *     The trailer
 */
public String getTrailer() {
    return trailer;
}

/**
 * 
 * @param trailer
 *     The trailer
 */
public void setTrailer(String trailer) {
    this.trailer = trailer;
}

public PopularMovies withTrailer(String trailer) {
    this.trailer = trailer;
    return this;
}

/**
 * 
 * @return
 *     The homepage
 */
public String getHomepage() {
    return homepage;
}

/**
 * 
 * @param homepage
 *     The homepage
 */
public void setHomepage(String homepage) {
    this.homepage = homepage;
}

public PopularMovies withHomepage(String homepage) {
    this.homepage = homepage;
    return this;
}

/**
 * 
 * @return
 *     The rating
 */
public double getRating() {
    return rating;
}

/**
 * 
 * @param rating
 *     The rating
 */
public void setRating(double rating) {
    this.rating = rating;
}

public PopularMovies withRating(double rating) {
    this.rating = rating;
    return this;
}

/**
 * 
 * @return
 *     The votes
 */
public long getVotes() {
    return votes;
}

/**
 * 
 * @param votes
 *     The votes
 */
public void setVotes(long votes) {
    this.votes = votes;
}

public PopularMovies withVotes(long votes) {
    this.votes = votes;
    return this;
}

/**
 * 
 * @return
 *     The updatedAt
 */
public String getUpdatedAt() {
    return updatedAt;
}

/**
 * 
 * @param updatedAt
 *     The updated_at
 */
public void setUpdatedAt(String updatedAt) {
    this.updatedAt = updatedAt;
}

public PopularMovies withUpdatedAt(String updatedAt) {
    this.updatedAt = updatedAt;
    return this;
}

/**
 * 
 * @return
 *     The language
 */
public String getLanguage() {
    return language;
}

/**
 * 
 * @param language
 *     The language
 */
public void setLanguage(String language) {
    this.language = language;
}

public PopularMovies withLanguage(String language) {
    this.language = language;
    return this;
}

/**
 * 
 * @return
 *     The availableTranslations
 */
public List<String> getAvailableTranslations() {
    return availableTranslations;
}

/**
 * 
 * @param availableTranslations
 *     The available_translations
 */
public void setAvailableTranslations(List<String> availableTranslations) {
    this.availableTranslations = availableTranslations;
}

public PopularMovies withAvailableTranslations(List<String> availableTranslations) {
    this.availableTranslations = availableTranslations;
    return this;
}

/**
 * 
 * @return
 *     The genres
 */
public List<String> getGenres() {
    return genres;
}

/**
 * 
 * @param genres
 *     The genres
 */
public void setGenres(List<String> genres) {
    this.genres = genres;
}

public PopularMovies withGenres(List<String> genres) {
    this.genres = genres;
    return this;
}

/**
 * 
 * @return
 *     The certification
 */
public String getCertification() {
    return certification;
}

/**
 * 
 * @param certification
 *     The certification
 */
public void setCertification(String certification) {
    this.certification = certification;
}

public PopularMovies withCertification(String certification) {
    this.certification = certification;
    return this;
}

/**
 * 
 * @return
 *     The images
 */
public Images getImages() {
    return images;
}

/**
 * 
 * @param images
 *     The images
 */
public void setImages(Images images) {
    this.images = images;
}

public PopularMovies withImages(Images images) {
    this.images = images;
    return this;
}
public Observable<List<PopularMovies>> fetchPopularMovies(String trakt_api_version,
                                                          String trakt_api_key,
                                                          String page) {
    return movieService 
            .getPopularMovies(trakt_api_version, trakt_api_key, page)
}