初始化
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
class CurlUtil {
|
||||
static String generateCurl(RequestOptions options) {
|
||||
const String curl = 'curl -X ';
|
||||
final String method = options.method;
|
||||
String url = options.baseUrl + options.path;
|
||||
String query = '';
|
||||
|
||||
if (options.data != null && options.data is String) {
|
||||
query = options.data;
|
||||
} else {
|
||||
late Map<String, dynamic> map;
|
||||
|
||||
if (options.queryParameters.isNotEmpty) {
|
||||
map = options.queryParameters;
|
||||
} else if (options.data is Map) {
|
||||
map = options.data;
|
||||
} else if (options.data is String) {
|
||||
} else if (options.data is FormData) {
|
||||
map = {};
|
||||
map.addEntries((options.data as FormData).fields);
|
||||
} else {
|
||||
map = {};
|
||||
}
|
||||
query = Transformer.urlEncodeMap(map);
|
||||
}
|
||||
String curlUrl;
|
||||
if (method.toLowerCase() == 'get') {
|
||||
if (query.isNotEmpty) {
|
||||
url += (url.contains('?') ? '&' : '?') + query;
|
||||
}
|
||||
String header = '';
|
||||
options.headers.forEach((key, value) {
|
||||
if (key != 'content-length') {
|
||||
header += ' -H ' '\"$key:$value\" ';
|
||||
}
|
||||
});
|
||||
|
||||
curlUrl = '$curl$method $header \"$url\"';
|
||||
} else {
|
||||
String header = '';
|
||||
options.headers.forEach((key, value) {
|
||||
if (key != 'content-length') {
|
||||
header += ' -H ' '\"$key:$value\" ';
|
||||
}
|
||||
});
|
||||
final param = json.encode(options.data).replaceAll('"', '\\"');
|
||||
header += " -d \"$param\"";
|
||||
curlUrl = '$curl$method $header \"$url\"';
|
||||
}
|
||||
|
||||
return curlUrl;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user