Android Okhttp+Jfinal的简单整合( Okhttp3.11+Jfinal3.5)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DTJ_74/article/details/83514739

目录

前言:

通过本篇博客可以了解认识到基础知识:

网络请求框架的发展:

Okhttp定义:

okhttp 优势:

Jfinal 定义:

史上最简单的server搭建过程。

创建Android项目:

同步get请求:

异步get 请求:

  Okhttp3超时相关:


 

前言:

此博客为Okhttp3+jfinal 3.5 的整合 的简单介绍。

通过本篇博客可以了解认识到基础知识:

  1. okhttp 是什么
  2. jfinal 是什么
  3. jfinal 3.5 的基本配置
  4. android 网络框架 okhttp的简单应用。

网络请求框架的发展:

  • HttpURLConnection—>Apache HTTP Client—>Volley—->okHttp--->retrofit
  • RxJava2+Okhttp3+Retrofit2的整合

Okhttp定义:

一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso) [2] 

用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)

okhttp 优势:

  • 允许连接到同一个主机地址的所有请求,提高请求效率 [3] 
  • 共享Socket,减少对服务器的请求次数 [3] 
  • 通过连接池,减少了请求延迟 [3] 
  • 缓存响应数据来减少重复的网络请求 [4] 
  • 减少了对数据流量的消耗 [3] 
  • 自动处理GZip压缩 [3] 

Jfinal 定义:

JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。

反正很简单。

史上最简单的server搭建过程。

 如图,直接导入1个jar包,创建web 项目。

  1. 创建 MyConfig配置类。
  2. 创建一个最简单的hellocontroller类。
  3. 配置web.xml
package com.twc.htp.config;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.template.Engine;
import com.twc.htp.controller.HelloController;

public class MyConfig extends JFinalConfig {

	@Override
	public void configConstant(Constants me) {
		  me.setDevMode(true);

	}

	@Override
	public void configEngine(Engine me) {
		

	}

	@Override
	public void configHandler(Handlers me) {
		

	}

	@Override
	public void configInterceptor(Interceptors me) {
		

	}

	@Override
	public void configPlugin(Plugins me) {
		

	}

	@Override
	public void configRoute(Routes me) {
		   me.add("/", HelloController.class);
	}

}
package com.twc.htp.controller;

import com.jfinal.core.Controller;

public class HelloController extends Controller {
	public void index() {
		renderText("Hello JFinal World.");
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>HTPro</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<filter>
		<filter-name>jfinal</filter-name>
		<filter-class>com.jfinal.core.JFinalFilter</filter-class>
		<init-param>
			<param-name>configClass</param-name>
			<param-value>com.twc.htp.config.MyConfig</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>jfinal</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

最后配置到Tomcat8.5,直接跑起来。

搞掂服务器了。

创建Android项目:

    //网络请求。
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'

同步get请求:

    /**
     * 同步get 请求。
     *
     * @param url
     * @return
     */
    public static String getUrl(String url) {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder().url(url).build();
        Response response = null;
        String message = null;
        try {
            response = client.newCall(request).execute();
            message = response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return message;
    }

异步get 请求:

  /**
     * 异步get。
     * @param url
     * @return
     */
    public static Response getAsyncUrl(String url) {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder().url(url).build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Log.e("response", response.body().string().toString());
            }
        });
        return null;
    }

  Okhttp3超时相关:

   client.newBuilder().connectTimeout(10, TimeUnit.SECONDS);
        client.newBuilder().readTimeout(10,TimeUnit.SECONDS);
        client.newBuilder().writeTimeout(10,TimeUnit.SECONDS);
 

同步Post ,异步Post,上传下载,网络框架封装。 下篇博客补上。

服务器地址:https://gitee.com/74q/HTPro

猜你喜欢

转载自blog.csdn.net/DTJ_74/article/details/83514739