All Projects → nickyoungzzz → Easygo

nickyoungzzz / Easygo

基于Kotlin、OkHttp的声明式网络框架,像写HTML界面一样写网络调用代码

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Easygo

Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (+13265%)
Mutual labels:  network, http-client, download, okhttp
Easyhttp
Android 网络请求框架,简单易用,so easy
Stars: ✭ 423 (+957.5%)
Mutual labels:  download, okhttp, retrofit
Chucker
🔎 An HTTP inspector for Android & OkHTTP (like Charles but on device)
Stars: ✭ 2,169 (+5322.5%)
Mutual labels:  library, okhttp, http-requests
Tina
a powerful android network library base on okhttp
Stars: ✭ 32 (-20%)
Mutual labels:  library, network, okhttp
Restclient
🦄 Simple HTTP and REST client for Unity based on Promises, also supports Callbacks! 🎮
Stars: ✭ 675 (+1587.5%)
Mutual labels:  http-client, http-requests
Retrofitcache
RetrofitCache让retrofit2+okhttp3+rxjava配置缓存如此简单。通过注解配置,可以针对每一个接口灵活配置缓存策略;同时让每一个接口方便支持数据模拟,可以代码减小侵入性,模拟数据可以从内存,Assets,url轻松获取。
Stars: ✭ 647 (+1517.5%)
Mutual labels:  okhttp, retrofit
Gout
gout to become the Swiss Army Knife of the http client @^^@---> gout 是http client领域的瑞士军刀,小巧,强大,犀利。具体用法可看文档,如使用迷惑或者API用得不爽都可提issues
Stars: ✭ 749 (+1772.5%)
Mutual labels:  http-client, http-requests
M3u8
Parser and generator of M3U8-playlists for Apple HLS. Library for Go language. 🎦
Stars: ✭ 800 (+1900%)
Mutual labels:  library, lib
Requests
Convenient http client for java, inspired by python request module
Stars: ✭ 459 (+1047.5%)
Mutual labels:  http-client, http-requests
Android Hot Libraries
收集总结 Android 项目中值得推荐的优秀开源项目
Stars: ✭ 755 (+1787.5%)
Mutual labels:  library, lib
Uplink
A Declarative HTTP Client for Python
Stars: ✭ 824 (+1960%)
Mutual labels:  http-client, retrofit
Httpu
The terminal-first http client
Stars: ✭ 619 (+1447.5%)
Mutual labels:  http-client, http-requests
Androidall
Android 程序员需要掌握的技术栈:数据结构算法、程序架构、设计模式、性能优化、插件化、热更新、Kotlin、NDK、Jetpack,以及常用的开源框架源码分析如 Flutter、Router、RxJava、Glide、LeakCanary、Dagger2、Retrofit、OkHttp、ButterKnife 等
Stars: ✭ 849 (+2022.5%)
Mutual labels:  okhttp, retrofit
Easygank
💊 The project build framework based on the Rx series and MVP pattern.
Stars: ✭ 750 (+1775%)
Mutual labels:  okhttp, retrofit
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+1112.5%)
Mutual labels:  okhttp, retrofit
Mvvmhabit
goldze: 本人喜欢尝试新的技术,以后发现有好用的东西,我将会在企业项目中实战,没有问题了就会把它引入到MVVMHabit中,一直维护着这套框架,谢谢各位朋友的支持。如果觉得这套框架不错的话,麻烦点个 star,你的支持则是我前进的动力!
Stars: ✭ 6,789 (+16872.5%)
Mutual labels:  okhttp, retrofit
Librg
🚀 Making multi-player gamedev simpler since 2017
Stars: ✭ 813 (+1932.5%)
Mutual labels:  library, network
Mvvmhabitcomponent
👕基于MVVMHabit框架,结合阿里ARouter打造的一套Android MVVM组件化开发方案
Stars: ✭ 857 (+2042.5%)
Mutual labels:  okhttp, retrofit
Qsimpleupdater
Updater system for Qt applications
Stars: ✭ 429 (+972.5%)
Mutual labels:  library, network
Sylar
C++高性能分布式服务器框架,webserver,websocket server,自定义tcp_server(包含日志模块,配置模块,线程模块,协程模块,协程调度模块,io协程调度模块,hook模块,socket模块,bytearray序列化,http模块,TcpServer模块,Websocket模块,Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
Stars: ✭ 895 (+2137.5%)
Mutual labels:  network, http-client

EasyGo

简介:

基于Kotlin、OkHttp、HttpsUrlConnection整合的Http链式调用框架。

特性:

1、充分应用了Kotlin DSL语法糖,摆脱回调式写法,像写HTML界面文件一样写网络调用代码;

2、支持restful风格api接口请求,支持get、post、put、delete、head、patch、head请求方式;

3、请求数据格式支持Form表单格式、MultiPart多请求体格式、Json请求体格式;

4、支持文件断点下载、下载进度监听、文件下载中断;

5、支持多项全局性配置,如代理、超时时间、dns解析、HTTPS验证SSL等等;

6、支持配置全局的拦截器,也可以为每个请求单独设置拦截器,对请求进行拦截配置;

7、框架进行了分层设计,请求数据装载层、网络请求层、数据解析层完全解耦分离;

8、网络请求层设计了统一的接口,目前已内置OkHttp,HttpsUrlConnection,可自主实现HttpHandler使用其他网络框架作为HTTP请求层;

9、可在全局配置网络请求层的Handler(默认为OkHttpHandler,基于OkHttp),可以在全局配置,也可以在每次网络请求时自由切换;

10、文件下载时文件保存使用OkIo来读写,可以实现DownloadHandler自定义其他框架来进行文件的读写;

11、支持动态配置各个请求的各自的超时时间,全局一次配置,各个请求全都生效;

12、依赖库相当少,仅依赖OkHttp和OkIo框架,接入成本较低,jar包仅100多kb,十分轻量级;

......

一、添加依赖

implementation 'com.nick.code:easygo:1.0.1'

二、使用方法

1、全局配置

	// 配置全局的HttpConfig,该配置代码只可执行一次,可在项目初始化时执行
	EasyGo.initialize {

		// 配置请求客户端,内置OkHttp和HttpUrlConnection两种
		httpHandler(HttpHandler.OK_HTTP_HANDLER)

		// 设置连接超时时间,默认15s,单位为毫秒
		connectTimeOut(20000L)

		// 设置读取时间,默认15s,单位为毫秒
		readTimeOut(20000L)

		// 设置代理,默认不需要代理
		proxy(Proxy.NO_PROXY)

		// 自定义dns, 默认为系统dns解析 
		dns { host: String -> InetAddress.getAllByName(host) }

		// 自定义主机名验证,默认为不验证
		hostNameVerifier { hostname, session -> true }

		// 自定义证书,使用默认证书
		sslSocketFactory(SslHelper.getSSLSocketFactory())

		// 全局请求拦截器(对全部请求进行拦截,对全部请求生效),可添加多个
		addInterceptor { chain ->
			val req = chain.request()
			chain.proceed(req.newBuilder().addQuery("query1", "value1").build())
		}

		// 有条件的进行timeout配置
		timeoutHandler { url, tag, method, headers -> TimeoutConfig() }
	}

2、发送请求

   // 比如当前为post请求方式
	val httpResult = httpPost {

		// 配置请求的url
		url("https://www.baidu.com/app/search")

		// 配置header
		header {
			"header1" with "value1"
			"header2" with "value2"
		}

		// 配置url上的查询,url?query1=value1&query2=value2
		query {
			"query1" with "value1"
			"query2" with "value2"
		}

		// 配置请求体
		body {

			// 配置表单数据
			field {
				"field1" with "value1"
				"field2" with "value2"
			}

			// 配置json请求体数据
			json("{\"name\":\"zhangsan\", \"password\":\"123456\"}")

			// 配置多请求体part数据
			part {
				"part1" with "value1"
				"part2" with "value2"
			}

			// 配置当前是多请求体方式还是表单方式,默认为false,表单方式
			multi(true)
		}
	}
		// 对单个请求配置网络层的HttpHandler
		.httpHandler(HttpHandler.OK_HTTP_HANDLER)

		// 配置请求的tag
		.tag("tag")

		// 单个请求拦截器(对当前请求进行拦截,只对当前请求生效),可添加多个
		.addInterceptor { chain ->
			val req = chain.request()
			chain.proceed(req.newBuilder().addHeader("header1", "value1").build())
		}

		// 结果解析成哪种类型,泛型类型
		.asResult<List<String>>()

		// 发送请求
		.send()

三、注意事项

1、该库未加入线程调度机制,可使用RxJava、Kotlin协程(推荐)、ThreadPool开启的线程中进行网络请求的调用;

2、该库为纯Kotlin Library,不依赖Retrofit、不受Android开发环境限制,可在任意的Kotlin开发环境中使用;

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].