百度智能云为开发者提供了极具吸引力的免费配额政策,新用户注册后可享受包括计算实例、存储空间和数据库服务在内的免费资源额度,这显著降低了开发初期的成本门槛,允许开发者无需立即投入资金就能测试和部署应用,从而加速创新迭代、提升开发效率,并有效减少项目风险,使更多初创团队和个人开发者能够轻松利用云计算资源实现产品快速上线和市场验证。

以下是在HarmonyOS中使用API 21调用百度智能云内容审核服务的程序框架及代码示例:


程序框架

  1. 环境配置
    • 添加网络权限
    • 导入JSON解析库(如ohos.global.util
  2. 核心流程
    • 生成签名(access_token
    • 构建HTTP请求
    • 处理审核结果
  3. 异常处理
    • 网络请求异常捕获
    • API响应错误码解析

代码示例

import ohos.net.http.HttpRequest;
import ohos.net.http.HttpResponse;
import ohos.net.http.HttpClient;
import ohos.global.util.JsonHelper;
import java.io.IOException;

public class ContentAuditService {
    // 百度云API配置
    private static final String API_KEY = "YOUR_API_KEY";
    private static final String SECRET_KEY = "YOUR_SECRET_KEY";
    private static final String AUDIT_URL = "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined";

    // 获取Access Token
    private String getAccessToken() throws IOException {
        String tokenUrl = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials" +
                "&client_id=" + API_KEY +
                "&client_secret=" + SECRET_KEY;
        
        HttpClient client = new HttpClient();
        HttpRequest request = new HttpRequest(tokenUrl, HttpRequest.GET);
        HttpResponse response = client.execute(request);
        
        if (response.getCode() == 200) {
            String json = response.getResponseString();
            return JsonHelper.getString(json, "access_token");
        }
        throw new IOException("Token request failed: " + response.getCode());
    }

    // 执行内容审核
    public void auditText(String text) {
        try {
            String token = getAccessToken();
            String url = AUDIT_URL + "?access_token=" + token;
            
            HttpRequest request = new HttpRequest(url, HttpRequest.POST);
            request.setHeader("Content-Type", "application/x-www-form-urlencoded");
            request.setRequestBody("text=" + text); // 需进行URL编码
            
            HttpResponse response = new HttpClient().execute(request);
            if (response.getCode() == 200) {
                parseAuditResult(response.getResponseString());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 解析审核结果
    private void parseAuditResult(String json) {
        int conclusionType = JsonHelper.getInt(json, "conclusionType");
        // 结论类型: 1-合规, 2-不合规, 3-疑似
        // 具体处理逻辑...
    }
}

关键说明

  1. 权限配置
    config.json中添加网络权限:

    {
      "reqPermissions": [{
        "name": "ohos.permission.INTERNET"
      }]
    }
    
  2. 参数要求

    • text参数需进行URLEncoder.encode(text, "UTF-8")编码
    • 百度云API返回数据结构参考官方文档
  3. 异步处理
    实际开发中需使用TaskDispatcher异步执行网络请求:

    TaskDispatcher dispatcher = TaskDispatcherFactory.getSerialTaskDispatcher();
    dispatcher.asyncDispatch(() -> auditText("待审核文本"));
    

扩展建议

  • 图片审核:替换AUDIT_URL/image_censor/v2/user_defined,改用imageimageType参数
  • 错误重试:对conclusionType=3(疑似)结果添加二次审核逻辑
  • 性能优化:缓存access_token(有效期通常为30天)

提示:请替换YOUR_API_KEYYOUR_SECRET_KEY为实际值,并处理敏感信息存储安全。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐