参考图谱

注意事项
- 按照官方教程处理,可能会碰到GsonConverterFactory.create()无法在IDEA中识别的问题,解决方案为pom引入依赖。注意两个版本号应该一致。
<dependency><groupId>com.squareup.retrofit2</groupId><artifactId>retrofit</artifactId><version>2.0.0-beta3</version></dependency><dependency><groupId>com.squareup.retrofit2</groupId><artifactId>converter-gson</artifactId><version>2.0.0-beta3</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.3</version></dependency>
调试代码
- 注意GsonConverterFactory.create()很可能报错(找不到类),如果报错了,检查自己的pom.xml引入是否正常。
import retrofit2.Call;import retrofit2.GsonConverterFactory;import retrofit2.Retrofit;import retrofit2.http.GET;import retrofit2.http.Path;import java.io.IOException;import java.util.List;public class TestRetrofit {public static final String API_URL = "https://api.github.com";public static class Contributor {public final String login;public final int contributions;public Contributor(String login, int contributions) {this.login = login;this.contributions = contributions;}}public interface GitHub {@GET("/repos/{owner}/{repo}/contributors")Call<List<Contributor>> contributors(@Path("owner") String owner,@Path("repo") String repo);}public static void main(String... args) throws IOException {// Create a very simple REST adapter which points the GitHub API.Retrofit retrofit = new Retrofit.Builder().baseUrl(API_URL).addConverterFactory(GsonConverterFactory.create()).build();// Create an instance of our GitHub API interface.GitHub github = retrofit.create(GitHub.class);// Create a call instance for looking up Retrofit contributors.Call<List<Contributor>> call = github.contributors("square", "retrofit");// Fetch and print a list of the contributors to the library.List<Contributor> contributors = call.execute().body();for (Contributor contributor : contributors) {System.out.println(contributor.login + " (" + contributor.contributions + ")");}}}
运行结果
JakeWharton (925)swankjesse (236)pforhan (48)eburke (36)dnkoutso (26)edenman (24)NightlyNexus (24)loganj (17)Noel-96 (16)rcdickerson (14)rjrjr (13)kryali (9)adriancole (9)holmes (7)swanson (7)JayNewstrom (6)crazybob (6)Jawnnypoo (6)danrice-square (5)Turbo87 (5)naturalwarren (5)vanniktech (4)guptasourabh04 (4)artem-zinnatullin (3)codebutler (3)icastell (3)jjNford (3)f2prateek (3)PromanSEW (3)koalahamlet (3)
遗留问题
这种写法会不会有SSRF问题
其他更复杂的用法实现(如POST,加Header等)
现在是GsonConverterFactory.create(),但如果想和Jackson联动或者Fastjson联动,应该如何操作变更。
