网络探测
即对客户端设备进行网络诊断以获设备的网络状况,可以通过以下类、接口来设置 ICMPPing 、TCPPing 、MTR 等任务进行获取。当应用在后台时,触发网络探测任务将不执行。
网络探测类
| 类名 | 说明 |
|---|---|
| NBSTaskCondition | 网络探测任务执行条件类 |
| NBSTCPPingDiagnosisTask | TCPPing 网络探测任务类 |
| NBSICMPPingDiagnosisTask | ICMPPing 网络探测类 |
| NBSMTRDiagnosisTask | MTR 网络探测类 |
| NBSDownloadDiagnosisTask | Download 网络探测类 |
NBSTaskCondition
网络探测任务执行条件类 ,用于创建网络探测任务条件;可以设置场景、执行域名、错误码等属性。
-
接口
/**
* @param scene 任务执行场景
* 支持以下两种场景
* NBSDiagnosisTaskScene.NBSDiagnosisTaskSceneAfterNetFinished,请求后(响应码为 200)执行
* NBSDiagnosisTaskScene.NBSDiagnosisTaskSceneAfterNetError,请求错误后执行
* @return NBSTaskCondition.Builder
*/
NBSTaskCondition.Builder(NBSDiagnosisTaskScene scene)
/**
* @param domain 匹配的域名,支持配置 host、uri(不能包含?及参数),支持 * 通配,如 *baidu.com、https://www.baidu*、*baidu.com*
* @return NBSTaskCondition.Builder
*/
NBSTaskCondition.Builder.patternDomains(List<String> domain)
/**
* @param errorCode 匹配的错误码,支持配置 http code 4xx、5xx,及 SDK 定义的部分网络错误码如 901(UnknownHostException)、902(ConnectException)、903(SocketTimeoutException)、908(SSLException) 等,仅可在 NBSDiagnosisTaskSceneAfterNetError (网络出错)场景下设置
* @return NBSTaskCondition.Builder
*/
NBSTaskCondition.Builder.patternErrorCodes(List<String> errorCode)
/**
* @return NBSTaskCondition
*/
NBSTaskCondition.Builder.build() -
示例
// 执行条件为请求(响应为 200)完成后
NBSTaskCondition.Builder(NBSDiagnosisTaskScene.NBSDiagnosisTaskSceneAfterNetFinished).build();
// 执行条件为网络出错后
NBSTaskCondition.Builder(NBSDiagnosisTaskScene.NBSDiagnosisTaskSceneAfterNetError).build();
// 执行条件为 url 包含 baidu.com 的请求(响应为 200)完成
NBSTaskCondition.Builder(NBSDiagnosisTaskScene.NBSDiagnosisTaskSceneAfterNetFinished)
.patternDomains(new ArrayList<String>() {{
add("*baidu.com*");
}})
.build();
// 执行条件为 url 包含 baidu.com 的请求出错
NBSTaskCondition.Builder(NBSDiagnosisTaskScene.NBSDiagnosisTaskSceneAfterNetError)
.patternDomains(new ArrayList<String>() {{
add("*baidu.com*");
}})
.build();
// 执行条件为 url 包含 baidu.com 的请求出现 404 错误或超时错误
NBSTaskCondition.Builder(NBSDiagnosisTaskScene.NBSDiagnosisTaskSceneAfterNetError)
.patternDomains(new ArrayList<String>() {{
add("*baidu.com*");
}})
.patternErrorCodes(new ArrayList<String>() {{
add("404");
add("903");
}})
.build()