往期鸿蒙全套实战文章必看:(附带鸿蒙全栈学习资料)


 ProcessingConfiguration:定制处理行为

场景介绍

ProcessingConfiguration 是 Remote Communication Kit 中用于定制响应处理行为的一个重要组件。它允许你在消息被分发到不同的处理器之前或之后执行一些自定义的逻辑。场景如检验响应状态是否为成功即响应码是否为200。

使用示例

  1. 导入需要的模块。
    import { rcp } from '@kit.RemoteCommunicationKit';
    import { BusinessError } from '@kit.BasicServicesKit';
  2. 创建会话、请求以及定义相关处理配置。
    const session = rcp.createSession();
    const request = new rcp.Request("https://www.example.com");
    
    
    // 定义处理配置,用于验证响应状态码是否为200
    const processing: rcp.ProcessingConfiguration = {
      validateResponse: (response: rcp.Response): boolean => {
        return response.statusCode === 200;
      },
    };
    
    
    // 将处理配置应用到请求中
    request.configuration = {
      processing: processing,
    };
  3. 发送请求并等待响应,使用 then 方法处理成功的响应,使用 catch 方法处理可能出现的错误。

    • 处理成功的响应:
      • if (response):检查是否收到响应。
      • const isValidStatusCode = processing.validateResponse:调用响应验证回调函数。
      • if (isValidStatusCode):检查响应状态码是否为 200,并打印相应的信息。
      • else:如果响应状态码不是 200,打印验证失败的响应状态码。
      • else:如果没有收到响应,打印没有响应的信息。
      • session.close():关闭会话。
    • 处理错误:
      • catch((err: BusinessError) => {...}):捕获可能出现的错误。
      • console.error(The error is: ${JSON.stringify(err)}):打印错误信息。
      • session.close():关闭会话。
        session.fetch(request).then((response: rcp.Response) => {
          if (response) {
            const isValidStatusCode = processing.validateResponse;
        
        
            if (isValidStatusCode) {
              console.info(`Response received with status code 200: ${response.statusCode}`);
            } else {
              console.error(`Validation failed with status code: ${response.statusCode}`);
            }
          } else {
            console.error('No response received');
          }
          session.close();
        }).catch((err: BusinessError) => {
          console.error(`The error is: ${JSON.stringify(err)}`);
          session.close();
        });

Logo

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

更多推荐