请求数据
自定义请求头
SDK 支持配置采集「请求头」参数,用以进行「后端调用链追踪」。
- 相关接口
/**
* @key 设置为要采集的请求头中的headerkey值
*/
+(void)setRequestIDHeaderKey:(NSString *)key;
- 代码示例
int main(int argc, char * argv[]) {
@autoreleasepool {
// 调用位置建议在初始化,其他位置首次不采集
[NBSAppAgent startWithAppID:@"appkey"];
[NBSAppAgent setRequestIDHeaderKey:@"key"];
...
}
}
SDK传输数据使用国密加密
SDK传输数据支持国密加密,调用该接口开启国密加密,默认不开启「前提:需工程中引入NBSGMKit.framework」。
注:该接口需要在SDK初始化前调用。
- 相关接口
/**
* @need 传入YES,则SDK传输数据使用国密加密。
*/
+ (void)encryptionRequired:(BOOL)need;
- 代码示例
int main(int argc, char * argv[]) {
@autoreleasepool {
//开启国密加密
[NBSAppAgent encryptionRequired:YES];
//默认为https,如果redirect_host为http协议的话则需要调用该接口。
[NBSAppAgent setHttpEnabled:YES];
//redirect_host为平台服务器地址
[NBSAppAgent setRedirectURL:@"redirectUrl"];
//Your_appkey从平台中获取
[NBSAppAgent startWithAppID:@"APPkey"];
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
信安SDK请求采集开关
信安SDK请求采集开关,默认关闭,调用此接口开启。
- 相关接口
/**
* @brief 开启信安SDK 请求监控,默认关闭
* @note
* 听云SDK监控信安SDK的请求原理为通过拦截信安SDK发请求的接口来获得请求的性能数据,如果信安SDK的请求接口更新(方法名称改变或者参数发生变化),则可能导致拦截失败,严重可能发生崩溃,所以开启该功能或者更新信安SDK后,都应该进行测试。
*/
+ (void)startIMSecurityMonitor;
- 代码示例
int main(int argc, char * argv[]) {
NSString * appDelegateClassName;
@autoreleasepool {
...
[NBSAppAgent startIMSecurityMonitor];//需在SDK start 之前调用
[NBSAppAgent setRedirectURL:@"redirectUrl"];
[NBSAppAgent startWithAppID:@"APPkey"];
...
}
}
支持采集libcurl请求数据
获取libcurl请求性能数据,如:IP、DNS、TCP、SSL等性能指标。
- 相关接口
/**
* for record curl networl.
*/
void nbsGetCurlNetworkInfo(void *curl,int curlcode,void *ptr);
- 代码示例
- (void)libcurlNetwork
{
...
CURL *curl = curl_easy_init();
CURLcode res;
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");
res = curl_easy_perform(curl);
nbsGetCurlNetworkInfo(curl, res, &curl_easy_getinfo);
curl_easy_cleanup(curl);
}
...
}
请求内容采集
调用该接口后,SDK 会采集 Http/Https 请求的请求头、响应头、请求体、响应体。
当请求头中Content-Type值为application/json、application/x-www-form-urlencoded、text/plain时,会采集请求体。
当响应头中Content-Type值为application/json、text/plain时,会采集响应体。
注:当平台「采集网络请求内容」开启且调用该接口时,请求内容采集功能才开启。
- 相关接口
/**
* 启用请求内容的获取
*/
+ (void)enableNetworkContentRecord;
- 代码示例
int main(int argc, char * argv[]) {
NSString * appDelegateClassName;
@autoreleasepool {
...
[NBSAppAgent enableNetworkContentRecord];
[NBSAppAgent setRedirectURL:@"redirectUrl"];
[NBSAppAgent startWithAppID:@"appkey"];
...
appDelegateClassName = NSStringFromClass([AppDelegate class]);
}
return UIApplicationMain(argc, argv, nil, appDelegateClassName);
}