我使用Retrofit发送请求并在android中接收响应但是当我想要来自服务器的转换响应它有问题它总是给我Exception:
retrofit.RetrofitError: com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING
Run Code Online (Sandbox Code Playgroud)
当服务器的响应应该给我电影列表,所以我需要把所有这些电影放在列表中.
Movie (型号类):
public class Movie {
public Movie() {}
@SerializedName("original_title")
private String movieTitle;
@SerializedName("vote_average")
private String movieVoteAverage;
@SerializedName("overview")
private String movieOverview;
............
}
Run Code Online (Sandbox Code Playgroud)
GitMovieApi 类:
public interface GitMovieApi {
@GET("/3/movie/{movie}")
public void getMovie(@Path("movie") String typeMovie,@Query("api_key") String keyApi, Callback<Movie> response);
}
Run Code Online (Sandbox Code Playgroud)
RestAdapter 组态:
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setConverter(new GsonConverter(new GsonBuilder().registerTypeAdapter(Movie.class, new UserDeserializer()).create()))
.setEndpoint("http://api.themoviedb.org")
.build();
GitMovieApi git = restAdapter.create(GitMovieApi.class);
git.getMovie("popular", "Keyapi", new Callback<Movie>() {
@Override
public void success(Movie …Run Code Online (Sandbox Code Playgroud)