http文档中,为什么成功不销毁,而异常需要销毁?

http文档中,为什么成功不销毁,而异常需要销毁

阅读 656
1 个回答

解决措施

http请求对象,在请求成功或者失败后,都需要调用destroy接口进行销毁,以节省资源消耗。

示例代码

// 引入包名 
import { http } from '@kit.NetworkKit'; 
import { BusinessError } from '@kit.BasicServicesKit'; 
 
// 每一个httpRequest对应一个HTTP请求任务,不可复用 
let httpRequest = http.createHttp(); 
// 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息 
httpRequest.on('headersReceive', (header: Object) => { 
  console.info('header: ' + JSON.stringify(header)); 
}); 
 
class ExtraData { 
  public data: string; 
  constructor(data: string) { 
    this.data = data; 
  } 
} 
 
class Header { 
  public contentType: string; 
  constructor(contentType: string) { 
    this.contentType = contentType; 
  } 
} 
 
httpRequest.request(// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 
  "EXAMPLE_URL", 
  { 
    method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET 
    // 当使用POST请求时此字段用于传递内容 
    extraData: new ExtraData('data to send'), 
    expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型 
    usingCache: true, // 可选,默认为true 
    priority: 1, // 可选,默认为1 
    // 开发者根据自身业务需要添加header字段 
    header: new Header('application/json'), 
    readTimeout: 60000, // 可选,默认为60000ms 
    connectTimeout: 60000, // 可选,默认为60000ms 
    usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定 
    usingProxy: false, // 可选,默认不使用网络代理 
    caPath: "", // 可选,默认使用系统预设CA证书 
  }, 
  (err: BusinessError) => { 
    if (!err) { 
      // 当该请求使用完毕时,开发者务必调用destroy方法主动销毁该JavaScript Object。 
      httpRequest.destroy(); 
    } else { 
      // 当该请求使用完毕时,开发者务必调用destroy方法主动销毁该JavaScript Object。 
      httpRequest.destroy(); 
    } 
  });

参考链接

http开发指导

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进