generateCurlCommand static method
Implementation
static String generateCurlCommand(DebugModel model, {bool redact = false}) {
final buffer = StringBuffer('curl -X ${model.httpMethod}');
model.requestHeadersView(redact: redact).forEach((key, value) {
buffer.write(" \\\n -H ${_shellQuote('$key: $value')}");
});
final body = model.requestData;
if (body != null) {
if (body is FormData) {
for (final field in body.fields) {
final value = redact && Redaction.isSensitive(field.key)
? Redaction.mask
: field.value;
buffer.write(" \\\n -F ${_shellQuote('${field.key}=$value')}");
}
for (final file in body.files) {
buffer.write(
" \\\n -F ${_shellQuote('${file.key}=@${file.value.filename ?? 'file'}')}",
);
}
} else {
final data = redact ? Redaction.redact(body) : body;
final encoded = data is String ? data : LogFormatter.encode(data);
buffer.write(" \\\n -d ${_shellQuote(encoded)}");
}
}
buffer.write(
" \\\n ${_shellQuote(redact ? Redaction.url(model.url) : model.url)}",
);
return buffer.toString();
}