当我们有OkHttp的时候为什么要使用Retrofit

与OkHttp我们可以做出HTTP请求,然后得到服务器的响应

OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); 

然后用Gson lib将响应转换成我们需要的对象。

这是从Square / OkHttp文档:

它的请求/响应API是devisestream畅的build设者和不变性。 它支持同步阻塞调用和具有callback的asynchronous调用

我从stackOverFlow读取

如果可用,改装会自动使用OkHTTP

所以我的问题是什么是完全改造?

OkHttp不能做什么改造?

我认为OkHttp和Gson解决了请求API问题,那么Retrofit为我们解决了什么问题?

Solutions Collecting From Web of "当我们有OkHttp的时候为什么要使用Retrofit"

与OkHttp我们可以做出HTTP请求,然后从服务器得到响应…然后用Gson lib转换响应到我们需要的对象

请注意,在您的代码片段中,您跳过了两个值得注意的步骤:生成URL并使用Gson实际parsingJSON。

所以我的问题是什么是完全改造?

它用于生成URL(使用types识别生成的代码绑定到特定的REST API),并使用Gson实际parsingJSON。 换句话说,它会执行您在代码段中跳过的内容。

而且,对于某些types的REST操作(例如,POST),它有助于组装要提交的内容(例如生成编码表单)。

根据定义,您不需要使用Retrofit。 改装是计算机程序员编写的计算机代码。 别人可以编写代码来完成Retrofit的function。

为什么Retrofit使用OkHttp

改造需要执行HTTP操作。 它使用OkHttp,在OkHttp提供的所有地方:HTTP / 2和SPDY支持,可插入拦截器等。

如果您试图将您的服务器API映射到您的应用程序(types安全)中,则应该使用改造。 改造只是一个包装在okHTTP上的API适配器。

如果您想要键入安全模块并使用API​​模块化交互代码,请使用改进。 除此之外,okHTTP和Retrofit的基本性能,请求默认等都是一样的。

另外,我build议您听听来自Jesse Wilson(主要Android HTTP客户端的开发人员)的播客,他深入讲解了Apache HTTP客户端,HTTPURLConnection,okHTTP和Retrofit的开发历史。

Retrofit是Square的Android和Java的REST客户端。 它使得通过基于REST的Web服务检索和上传JSON(或其他结构化数据)变得相对容易。 在Retrofit中,您可以configuration用于数据序列化的转换器。 通常对于JSON,您使用GSon,但您可以添加自定义转换器来处理XML或其他协议。 Retrofit使用OkHttp库进行HTTP请求。 你应该使用okhttp来改进它的function。