使用Java中的API改进使用

时间:2018-03-16 13:37:19

标签: java github retrofit retrofit2 github-api

根据官方网站的信息,我添加了最新的依赖并开始发展。

首先,我创建了我感兴趣的数据模型:

public class Data{
    String parametr1;
    //geters and setters ommited
}

第二步是添加服务:

public interface GitHubService {
    @GET("/repos/{owner}/{repo}")
    Call<Data> repoInfos(@Path("user") String owner, @Path("repo") String repo);

    Retrofit retrofit = new Retrofit.Builder().baseUrl("https://api.github.com/").build();
}

第三个是添加实现:

@Service
public class GitHubServiceImpl implements GitHubService {

    final GitHubService gitHubService = GitHubService.retrofit.create(GitHubService.class);

    @Override
    public Call<DetailDto> repoDetails(String owner, String repo) {
        return gitHubService.repoDetails(owner, repo);
    }
}

但是有一个错误:

java.lang.IllegalArgumentException: Could not locate ResponseBody converter for class model.Data.

Here is full error log trace

1 个答案:

答案 0 :(得分:2)

对于maven依赖:

<dependency>
    <groupId>com.squareup.retrofit2</groupId>
    <artifactId>converter-gson</artifactId>
    <version><latest-version></version>
</dependency>

为代码添加一个ConverterFactory:

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(Constants.API_BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build();

这应该这样做。