智能客服
你问我答,随时在线为你解决问题
| URLCheck提供恶意URL检测能力,向您提供集成简单、免运营、可信赖的安全服务,降低安全浏览服务的实现成本。 |
|

用户访问网址时,判断用户访问的URL是否为恶意网址,对于恶意网址,由您评估提示或拦截用户的访问风险。
调用URLCheck API主要分为三个步骤:
SafetyDetectClient client = SafetyDetect.getClient(getActivity()); client.initUrlCheck();
client = SafetyDetect.getClient(activity) client.initUrlCheck()
指定关注的威胁类型,您可以将关注的威胁类型作为网址检测API的参数。其中,UrlCheckThreat类中的常量包含了当前支持的威胁类型:
public class UrlCheckThreat {
//此类型URL被标记为包含潜在有害应用的页面的URL(篡改首页、网页挂马、恶意应用下载链接等)
public static final int MALWARE = 1;
// 这种类型的URL被标记为钓鱼、欺诈网站
public static final int PHISHING = 3;
} String url = "https://developer.huawei.com/consumer/cn/";
SafetyDetect.getClient(this).urlCheck(url, appId, UrlCheckThreat.MALWARE, UrlCheckThreat.PHISHING).addOnSuccessListener(this, new OnSuccessListener<UrlCheckResponse >(){
@Override
public void onSuccess(UrlCheckResponse urlResponse) {
if (urlResponse.getUrlCheckResponse().isEmpty()) {
// 无威胁
} else {
// 存在威胁!
}
}
}).addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// 与服务通信发生错误.
if (e instanceof ApiException) {
// HMS发生错误的状态码及对应的错误详情.
ApiException apiException = (ApiException) e;
Log.d(TAG, "Error: " + CommonStatusCodes.getStatusCodeString(apiException.getStatusCode()));
// 注意:如果状态码是SafetyDetectStatusCode.CHECK_WITHOUT_INIT,
// 这意味着您未调用initUrlCheck()或者调用未完成就发起了网址检测请求,
// 或者在初始化过程中发生了内部错误需要重新进行初始化,需要重新调用initUrlCheck()
} else {
// 发生未知类型的异常.
Log.d(TAG, "Error: " + e.getMessage());
}
}
}); val url = "https://developer.huawei.com/consumer/cn/"
client.urlCheck(
url,
APP_ID, // Specify url threat type
UrlCheckThreat.MALWARE,
UrlCheckThreat.PHISHING
).addOnSuccessListener {
val list = it.urlCheckResponse
if (list.isEmpty()) {
// 无威胁
} else {
// 存在威胁!
}
}.addOnFailureListener {
// 与服务通信发生错误.
if (it is ApiException) {
// HMS发生错误的状态码及对应的错误详情.
val apiException = it
Log.d(
TAG,
"Error: " + CommonStatusCodes.getStatusCodeString(apiException.statusCode)
)
// 注意:如果状态码是SafetyDetectStatusCode.CHECK_WITHOUT_INIT,
// 这意味着您未调用initUrlCheck()或者调用未完成就发起了网址检测请求,
// 或者在初始化过程中发生了内部错误需要重新进行初始化,需要重新调用initUrlCheck()
} else {
// 发生未知类型的异常.
Log.d(TAG, "Error: " + it.message)
}
}final EditText testRes = getActivity().findViewById(R.id.fg_call_urlResult);
List<UrlCheckThreat> list = urlCheckResponse.getUrlCheckResponse();
if (list.isEmpty()) {
testRes.setText("ok");
}
else{
for (UrlCheckThreat threat : list) {
int type = threat.getUrlCheckResult();
}
}val list = it.urlCheckResponse
if (list.isEmpty()) {
fg_call_urlResult.text = Editable.Factory.getInstance().newEditable("ok")
} else {
for (threat in list) {
val type = threat.urlCheckResult
}
}SafetyDetect.getClient(this).shutdownUrlCheck();
client.shutdownUrlCheck()
具体错误码请参见API参考文档。
校验逻辑请参见客户端示例代码中URLCheck示例代码部分。