WebRtcHttpMessage.fromJson constructor
WebRtcHttpMessage.fromJson(
- Map<String, dynamic> json
)
Implementation
factory WebRtcHttpMessage.fromJson(Map<String, dynamic> json) {
final message = WebRtcHttpMessage();
// 请求管理字段
if (json.containsKey('request_id')) {
message.requestId = json['request_id'] as int;
}
// URL 组成字段
if (json.containsKey('host')) {
message.host = json['host'] as String;
}
if (json.containsKey('port')) {
message.port = json['port'] as int;
}
if (json.containsKey('api_url')) {
message.apiUrl = json['api_url'] as String;
}
// HTTP 协议字段
if (json.containsKey('method')) {
message.method = json['method'] as int;
}
if (json.containsKey('status')) {
message.status = json['status'] as int;
}
// HTTP Header(支持字符串或数组)
if (json.containsKey('header') && json['header'] is Map) {
final headerObj = json['header'] as Map<String, dynamic>;
for (final key in headerObj.keys) {
final value = headerObj[key];
if (value is List) {
// 数组:添加所有值
message.header[key] = value.map((e) => e.toString()).toList();
} else {
// 字符串:添加单个值
message.header[key] = [value.toString()];
}
}
}
// HTTP Query Parameter
if (json.containsKey('parameter') && json['parameter'] is Map) {
final paramObj = json['parameter'] as Map<String, dynamic>;
for (final key in paramObj.keys) {
message.parameter[key] = paramObj[key].toString();
}
}
// HTTP Body
if (json.containsKey('body')) {
message.body = json['body'] as String;
}
return message;
}