Sources/AliNetworkDiagnosis/AliNetworkDiagnosis.framework/Headers/AliHttpPing.h (67 lines of code) (raw):
//
// AliHttpPing.h
// AliNetworkDiagnosis
//
// Created by colin on 2021/9/13.
//
#import <Foundation/Foundation.h>
//#import <AliNetworkDiagnosis/AliDetectConfig.h>
#import "AliDetectConfig.h"
@interface AliHttpCredential : NSObject
// 客户端提供凭证,供服务器认证客户端时使用
@property (nonatomic, strong) NSURLCredential* clientCredential;
// 服务端凭证,供客户端认证服务器时使用
@property (nonatomic, strong) NSURLCredential* serverCredential;
@end
@protocol AliHttpCredentialDelegate <NSObject>
- (AliHttpCredential*)getHttpCredential:(NSString*)url context:(id)context;
@end
@interface AliHttpPingResult : NSObject
//客户端发起请求的时间
@property (nonatomic, assign) UInt64 startDate;
//客户端开始请求到开始dns解析的等待时间,单位ms
@property (nonatomic, assign) int waitDnsTime;
//DNS 解析耗时
@property (nonatomic, assign) int dnsTime;
//tcp 三次握手耗时,单位ms
@property (nonatomic, assign) int tcpTime;
//ssl 握手耗时
@property (nonatomic, assign) int sslTime;
//首包耗时 从http请求到收到首包 不包含dns,tcp和ssl耗时
@property (nonatomic, assign) int firstByteTime;
//所有http payload耗时 从http请求到收到结束 不包含dns,tcp和ssl耗时
@property (nonatomic, assign) int allByteTime;
//一个完整请求的耗时,单位ms
@property (nonatomic, assign) int requestTime;
//http 响应码
@property (nonatomic, assign) NSUInteger httpCode;
//连接复用
@property (nonatomic, assign) BOOL reusedConnection;
//发送的字节数
@property (nonatomic, assign) int sendBytes;
//接收的字节数
@property (nonatomic, assign) int receiveBytes;
@property (nonatomic, assign) float bandwidth;
@property (nonatomic, strong) NSString *httpProtocol;
@property (nonatomic, strong) NSString *remoteAddr;
@property (nonatomic, strong) NSString *rdr_location;
@property (nonatomic, strong) NSString *content;
@property (nonatomic, assign) NSUInteger errCode;
@property (nonatomic, strong) NSString *errDomain;
@property (nonatomic, strong) NSString *errDesc;
@end
typedef void (^AliHttpPingCompleteHandler)(id context, NSString *traceID, AliHttpPingResult *result);
@interface AliHttpPingConfig : AliDetectConfig
@property NSString* url;
@property AliHttpPingCompleteHandler complete;
@property NSURLCredential* clientCredential;
@property NSURLCredential* serverCredential;
@property NSTimeInterval timeout;
@property int downloadBodyLimitBytes;
@property BOOL downloadHeaderOnly;
-(instancetype)init:(NSString*)url
traceId:(NSString*)traceId
context:(id)context
complete:(AliHttpPingCompleteHandler)complete;
-(instancetype)init:(NSString*)url
traceId:(NSString*)traceId
clientCredential:(NSURLCredential*)clientCredential
serverCredential:(NSURLCredential*)serverCredential
context:(id)context
complete:(AliHttpPingCompleteHandler)complete;
-(instancetype)init:(NSString*)url
traceId:(NSString*)traceId
clientCredential:(NSURLCredential*)clientCredential
serverCredential:(NSURLCredential*)serverCredential
timeout:(NSTimeInterval)timeout
limit:(int)downloadBodyLimitBytes
headerOnly:(BOOL)downloadHeaderOnly
context:(id)context
complete:(AliHttpPingCompleteHandler)complete;
@end
@interface AliHttpPing : NSObject <NSURLSessionDataDelegate>
+(void)start:(NSString*)url
traceId:(NSString*)traceId
context:(id)context
complete:(AliHttpPingCompleteHandler)complete;
+(void)execute:(AliHttpPingConfig*)config;
@end