Google 도서 API를 Retrofit과 함께 사용하려고하면 빈 결과가 반환됩니다.
개조에서 https://www.googleapis.com/books/v1/volumes?q=9781451648546google books api retrofit
내가 인터페이스가 :
이
는 URL입니다에서public interface IServiceEndPoint {
@GET("https://www.googleapis.com/books/v1/volumes?q=9781451648546")
Call<BookList> getBooks();
}
을 내 webservice class
나는 다음과 같은 방법이 다음 activity class
I에서
public void getBooks(final Callback<BookList> callback){
IServiceEndPoint endPoint = mRetrofit.create(IServiceEndPoint.class);
Call<BookList> call = endPoint.getBooks();
call.enqueue(callback);
}
을 방법 :
private void getBooks(){
WebserviceHelper.getmInstance().getBooks(new Callback<BookList>() {
@Override
public void onResponse(Call<BookList> call, Response<BookList> response) {
mBooks = response.body().getResults();
mBookAdapter.update(mBooks);
}
@Override
public void onFailure(Call<BookList> call, Throwable t) {
}
});
}
1,363,210 나는 자바 클래스 예약 및 BookList 있습니다. ?
이름 = "android.permission.INTERNET은
mBooks가 null 값을 반환하고, 나는이 문제를 해결 수있는 방법 : 매니페스트 파일에서
public class Book implements Serializable {
@SerializedName("id")
private String id;
@SerializedName("title")
private String title;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
public class BookList extends Book implements Serializable {
@SerializedName("results")
private List<Book> results;
public List<Book> getResults() {
return results;
}
public void setResults(List<Book> results) {
this.results = results;
}
}
나는
사용 - 권한 안드로이드 추가 고마워요.편집 :shuvro 님의 답변 문제를 바로 잡는데 도움이되었습니다. 내 Book 클래스에 volumeInfo를 포함하는 것을 잊었습니다. 이제 다음과 같이 내 책 클래스는 같습니다 도움에 대한 모든
public class VolumeInfo {
private String title;
private String subtitle;
private String publisher;
private String description;
public String getSubtitle() {
return subtitle;
}
public void setSubtitle(String subtitle) {
this.subtitle = subtitle;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
감사 :
public class Book implements Serializable {
@SerializedName("id")
private String id;
private VolumeInfo volumeInfo;
public VolumeInfo getVolumeInfo() {
return volumeInfo;
}
public void setVolumeInfo(VolumeInfo volumeInfo) {
this.volumeInfo = volumeInfo;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
이 또한 내가 클래스 volumeInfo를 만들어!
onFailure 메소드를 확인하십시오. Throwable에서 문제가 발생한 것 같습니다. 예 : t.printStackTrace();를 추가하십시오. onFailure 메소드 본체로 가서 logcat을 확인하십시오. –
답장을 보내 주셔서 감사합니다. 내 logcat에서 아무 것도 보지 않았습니다. 디버그 모드에서 mBooks 값이 null임을 알 수 있습니다. – itnoob
이 방법으로 onFailure를 변경 했습니까? @Override public void onFailure ( 호출, Throwable t 호출) { t.printStackTrace(); } –