初始化

This commit is contained in:
谢宇宁
2026-09-15 15:44:13 +07:00
commit a23ba685e9
1065 changed files with 101122 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
part of '_dnsolve.dart';
String _handleResponse(http.Response response) {
if (response.statusCode >= 200 && response.statusCode <= 209) {
return response.body;
} else {
throw ResponseException(
body: response.body,
headers: response.headers,
statusCode: response.statusCode,
);
}
}
/// Represents a response from a DNS resolution operation.
///
/// This class includes information about the resolution status, flags,
/// comments, resolved answer, and the list of questions queried.
class ResolveResponse {
const ResolveResponse({
required this.status,
required this.tc,
required this.rd,
required this.ra,
required this.ad,
required this.cd,
required this.comment,
required this.answer,
required this.questions,
});
/// The status code indicating the result of the DNS resolution.
final int? status;
/// Indicates if the response was truncated.
final bool? tc;
/// Indicates if recursion was desired in the request.
final bool? rd;
/// Indicates if recursion is available in the response.
final bool? ra;
/// Indicates if the data in the response is authenticated.
final bool? ad;
/// Indicates if checking is disabled in the response.
final bool? cd;
/// Additional comments or information related to the resolution response.
final String? comment;
/// The resolved answer containing DNS records.
final _Answer? answer;
/// List of questions queried in the resolution request.
final List<_Question>? questions;
/// Constructs a [ResolveResponse] instance from JSON data.
///
/// The [json] parameter should be a map containing the fields of a DNS
/// resolution response. Returns a [ResolveResponse] instance with parsed
/// data.
factory ResolveResponse.fromJson(Map<String, dynamic> json) => ResolveResponse(
status: json['Status'] as int?,
tc: json['TC'] as bool?,
rd: json['RD'] as bool?,
ra: json['RA'] as bool?,
ad: json['AD'] as bool?,
cd: json['CD'] as bool?,
comment: json['comment'] as String?,
answer: _Answer.fromJson(json['Answer'] as List<dynamic>?),
questions: () {
final data = json['Question'];
if (data == null) return null;
if (data is List) {
return (data as List)
.map(
(question) => _Question.fromJson(question as Map<String, dynamic>),
)
.toList();
}
if (data is Map) return [_Question.fromJson(Map<String, dynamic>.from(data))];
}(),
);
@override
String toString() =>
'''status: $status, truncation: $tc, recursion desired(rd): $rd, recursion available(ra): $ra, authenticated data(ad): $ad, checking disabled(cd): $cd, comment: $comment, answer: $answer, questions: $questions''';
}