跳到主要内容

请求数据

请求内容采集

调用该接口后,SDK 会采集 Http/Https 请求的请求头、响应头、请求体、响应体

当请求头中Content-Type值为application/json、application/x-www-form-urlencoded、text/plain时,会采集请求体。 当响应头中Content-Type值为application/json、text/plain时,会采集响应体。

注:当平台「采集网络请求内容」开启且调用该接口时,请求内容采集功能才开启。

  • 相关接口
/**
* @param enabled 默认 false,设置 true,SDK 将采集请求内容
*/
enableNetworkContentRecord(boolean enabled)
  • 代码示例
NBSAppAgent.setLicenseKey("AppKey").setRedirectHost("Host")
.enableNetworkContentRecord(true)// 采集请求内容
.start(this.getApplicationContext());

自定义请求头/请求体采集

调用该接口后,可以自定义设置采集的请求头/请求体信息,调用多次则覆盖。

注:若平台和接口都配置请求头采集,接口配置优先。body 采集仅支持 okhttp3。

  • 相关接口
/**
* @param headerCallBack 可以拦截 SDK 采集的网络 header 数据
* @param bodyCallBack 可以拦截 SDK 采集的网络 body 数据
*/
setRequestHeaderCallback(INBSNetworkHeader headerCallBack)
setRequestBodyCallback(INBSNetworkBody bodyCallBack)
  • 代码示例
NBSAppAgent.setRequestHeaderCallback(new INBSNetworkHeader() {
@Override
public Map<String, String> processHeaderMap(String url, Map<String, String> headers) {
//当请求的 URL 包含 www.tingyun.com 时,不采集 x-tingyun 请求头
if(url.contains("www.tingyun.com")){
headers.remove("x-tingyun");
return haaders;
}else{
return headers;
}
}
});
NBSAppAgent.setRequestBodyCallback(new INBSNetworkBody() {
@Override
public String processBody(String url, String body) {
//当请求的URL包含www.tingyun.com时,返回自定义请求体信息
if(url.contains("www.tingyun.com")){
//返回自定义请求体信息
return "";
}else{
return body;
}
}
});

自定义响应头/响应体采集

调用该接口后,可以自定义设置采集的响应头/响应体信息,调用多次则覆盖。

注:若平台和接口都配置响应头采集,接口配置优先。body 采集仅支持 okhttp3。

  • 相关接口
/**
* @param headerCallBack 可以拦截 SDK 采集的网络 header 数据
* @param bodyCallBack 可以拦截 SDK 采集的网络 body 数据
*/
setResponseHeaderCallback(INBSNetworkHeader headerCallBack)
setResponseBodyCallback(INBSNetworkBody bodyCallBack)
  • 代码示例
NBSAppAgent.setResponseHeaderCallback(new INBSNetworkHeader() {
@Override
public Map<String, String> processHeaderMap(String url, Map<String, String> headers) {
//当请求的 URL 包含 www.tingyun.com 时,不采集 x-tingyun-data 响应头
if(url.contains("www.tingyun.com")){
headers.remove("x-tingyun-data");
return headers;
}else{
return headers;
}
}
});
NBSAppAgent.setResponseBodyCallback(new INBSNetworkBody() {
@Override
public String processBody(String url, String body) {
//当请求的 URL 包含 www.tingyun.com 时,返回自定义响应体信息
if(url.contains("www.tingyun.com")){
//返回自定义响应体信息
}else{
return body;
}
}
});