network

基于OKHttp的网络组件

License

License

Categories

Categories

Net
GroupId

GroupId

io.github.lavalike
ArtifactId

ArtifactId

network
Last Version

Last Version

0.0.2
Release Date

Release Date

Type

Type

aar
Description

Description

network
基于OKHttp的网络组件
Project URL

Project URL

http://github.com/lavalike
Source Code Management

Source Code Management

https://github.com/lavalike/network

Download network

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.lavalike/network/ -->
<dependency>
    <groupId>io.github.lavalike</groupId>
    <artifactId>network</artifactId>
    <version>0.0.2</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/io.github.lavalike/network/
implementation 'io.github.lavalike:network:0.0.2'
// https://jarcasting.com/artifacts/io.github.lavalike/network/
implementation ("io.github.lavalike:network:0.0.2")
'io.github.lavalike:network:aar:0.0.2'
<dependency org="io.github.lavalike" name="network" rev="0.0.2">
  <artifact name="network" type="aar" />
</dependency>
@Grapes(
@Grab(group='io.github.lavalike', module='network', version='0.0.2')
)
libraryDependencies += "io.github.lavalike" % "network" % "0.0.2"
[io.github.lavalike/network "0.0.2"]

Dependencies

compile (4)

Group / Artifact Type Version
com.squareup.okhttp3 : okhttp jar 4.7.2
androidx.appcompat » appcompat jar 1.2.0
androidx.constraintlayout » constraintlayout jar 2.0.2
com.google.code.gson : gson jar 2.8.6

Project Modules

There are no modules declared in this project.

network

基于OkHttp3网络框架

Platform

Maven配置

Mac Windows

依赖导入

项目根目录

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

模块目录

dependencies {
	implementation 'com.github.lavalike:network:0.0.1'
}

自定义全局配置

如未初始化,网络请求请写明全路径

Network.init(NetConfig.Builder().build());

NetConfig支持方法

public static class Builder {
    public Builder baseUrl(String baseUrl);
    public Builder netInterceptor(Interceptor interceptor);�
    public Builder interceptor(Interceptor interceptor);
    public CookieJar cookieJar;
    public Builder retryOnConnectionFailure(boolean retry);
    public Builder connectTimeout(long connectTimeout);
    public Builder readTimeout(long readTimeout);
    public Builder writeTimeout(long writeTimeout);
    public Builder debug(boolean debug);
    public NetConfig build();
}

请求类型

类型 继承关系
GET GetTask
POST_JSON PostJsonTask
POST_FORM PostFormTask
UPLOAD UploadTask

网络请求Task支持方法

public interface Task {
    void onSetupParams(Object... params);
    String getApi();
    Task put(String key, Object value);
    Task putFile(String key, String filePath);
    Task addHeader(String name, String value);
    Task setTag(Object tag);
    Task setLoadingPage(LoadingPage page);
    Call exe(Object... params);
    Call retry();
}

发起请求

1、使用可变参数形式请求

new TestTask(new LoadingCallback<EntityType>() {
    @Override
    public void onSuccess(EntityType data) {
        
    }
}).exe("abc", 1, true);

重写onSetupParams方法手动处理参数

public class TestTask extends GetTask {
    public <EntityType> TestTask(RequestCallback<EntityType> callback) {
        super(callback);
    }

    @Override
    public void onSetupParams(Object... params) {
        put("param1", params[0]);
        put("param2", params[1]);
        put("param3", params[2]);
    }

    @Override
    public String getApi() {
        return "your api address";
    }
}

2、链式传递参数

new TestTask(new ProgressCallback<String>() {
	@Override
	public void onSuccess(String data) {

	}

	@Override
	public void onProgress(int progress) {

	}
}).setTag(this)
	.put("token", token)
	.putFile("sourceFile", "file url")
	.addHeader("","")
	.exe();

无需重写onSetupParams方法

设置加载页

setLoadingPage(LoadingPage page)

注意
1、page为null无效
2、page构造参数为null无效

1、使用默认加载页 DefaultLoadingPage

new TestTask(new LoadingCallback<String>() {
    @Override
    public void onSuccess(String data) {
    
    }
}).setLoadingPage(new DefaultLoadingPage(recycler)).exe();

2、LoadingPage自定义成功延迟回调与加载时长

new DefaultLoadingPage(recycler).setDelay(3000).setDuration(2000)

3、自定义加载页

继承 AbsLoadingPage 并处理对应逻辑,如有疑问请参照 DefaultLoadingPage

错误输出

初始化配置时,debug 默认为 false,输出较为友好的统一提示,配置为 true 可输出具体错误信息

Network.init(new NetConfig.Builder()
        .debug(true)
        .build());

Versions

Version
0.0.2
0.0.1