mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 18:57:05 +08:00
Merge pull request #693 from badnikhil/resolve-issue-692
fixed swift Code (Tested)
This commit is contained in:
@@ -37,14 +37,16 @@ let multipartFormData = try! MultipartFormData(boundary: boundary) {
|
|||||||
''';
|
''';
|
||||||
|
|
||||||
final String kTemplateJsonData = '''
|
final String kTemplateJsonData = '''
|
||||||
let parameters = "{{jsonData}}"
|
let postData = """
|
||||||
let postData = parameters.data(using: .utf8)
|
{{jsonData}}
|
||||||
|
""".data(using: .utf8)
|
||||||
|
|
||||||
''';
|
''';
|
||||||
|
|
||||||
final String kTemplateTextData = '''
|
final String kTemplateTextData = '''
|
||||||
let parameters = "{{textData}}"
|
let postData = """
|
||||||
let postData = parameters.data(using: .utf8)
|
{{textData}}
|
||||||
|
""".data(using: .utf8)
|
||||||
|
|
||||||
''';
|
''';
|
||||||
|
|
||||||
@@ -61,15 +63,23 @@ request.addValue("{{value}}", forHTTPHeaderField: "{{header}}")
|
|||||||
|
|
||||||
""";
|
""";
|
||||||
|
|
||||||
final String kTemplateBody = """
|
final String kTemplateFormDataBody = """
|
||||||
request.httpBody = try! multipartFormData.encode()
|
request.httpBody = try! multipartFormData.encode()
|
||||||
|
""";
|
||||||
|
|
||||||
|
final String kTemplateJsonTextBody = """
|
||||||
|
request.httpBody = postData
|
||||||
|
|
||||||
""";
|
""";
|
||||||
|
|
||||||
final String kTemplateEnd = """
|
final String kTemplateEnd = """
|
||||||
|
let semaphore = DispatchSemaphore(value: 0)
|
||||||
|
|
||||||
let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
||||||
|
defer { semaphore.signal() }
|
||||||
|
|
||||||
if let error = error {
|
if let error = error {
|
||||||
print("Error: (error.localizedDescription)")
|
print("Error: \\(error.localizedDescription)")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
guard let data = data else {
|
guard let data = data else {
|
||||||
@@ -77,25 +87,26 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if let responseString = String(data: data, encoding: .utf8) {
|
if let responseString = String(data: data, encoding: .utf8) {
|
||||||
print("Response: (responseString)")
|
print("Response: \\(responseString)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task.resume()
|
task.resume()
|
||||||
|
|
||||||
|
semaphore.wait()
|
||||||
""";
|
""";
|
||||||
|
|
||||||
|
|
||||||
String? getCode(HttpRequestModel requestModel) {
|
String? getCode(HttpRequestModel requestModel) {
|
||||||
try {
|
try {
|
||||||
String result = kTemplateStart;
|
String result = kTemplateStart;
|
||||||
|
|
||||||
if (requestModel.hasFormData) {
|
var rec = getValidRequestUri(requestModel.url, requestModel.enabledParams);
|
||||||
result += kTemplateFormDataImport;
|
|
||||||
}
|
|
||||||
|
|
||||||
var rec =
|
|
||||||
getValidRequestUri(requestModel.url, requestModel.enabledParams);
|
|
||||||
Uri? uri = rec.$1;
|
Uri? uri = rec.$1;
|
||||||
|
|
||||||
if (requestModel.hasFormData) {
|
if (requestModel.hasFormData) {
|
||||||
|
result += kTemplateFormDataImport;
|
||||||
|
|
||||||
var formDataList = requestModel.formDataMapList.map((param) {
|
var formDataList = requestModel.formDataMapList.map((param) {
|
||||||
if (param['type'] == 'file') {
|
if (param['type'] == 'file') {
|
||||||
final filePath = param['value'] as String;
|
final filePath = param['value'] as String;
|
||||||
@@ -122,17 +133,19 @@ task.resume()
|
|||||||
result += templateFormData.render({
|
result += templateFormData.render({
|
||||||
"formData": formDataList,
|
"formData": formDataList,
|
||||||
});
|
});
|
||||||
} else if (requestModel.hasJsonData) {
|
}
|
||||||
|
// Handle JSON data
|
||||||
|
else if (requestModel.hasJsonData) {
|
||||||
var templateJsonData = jj.Template(kTemplateJsonData);
|
var templateJsonData = jj.Template(kTemplateJsonData);
|
||||||
result += templateJsonData.render({
|
result += templateJsonData.render({
|
||||||
"jsonData":
|
"jsonData": requestModel.body!
|
||||||
requestModel.body!.replaceAll('"', '\\"').replaceAll('\n', '\\n'),
|
});
|
||||||
});
|
}
|
||||||
} else if (requestModel.hasTextData) {
|
// Handle text data
|
||||||
|
else if (requestModel.hasTextData) {
|
||||||
var templateTextData = jj.Template(kTemplateTextData);
|
var templateTextData = jj.Template(kTemplateTextData);
|
||||||
result += templateTextData.render({
|
result += templateTextData.render({
|
||||||
"textData":
|
"textData": requestModel.body!
|
||||||
requestModel.body!.replaceAll('"', '\\"').replaceAll('\n', '\\n'),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,19 +157,21 @@ task.resume()
|
|||||||
|
|
||||||
var headers = requestModel.enabledHeadersMap;
|
var headers = requestModel.enabledHeadersMap;
|
||||||
if (requestModel.hasFormData) {
|
if (requestModel.hasFormData) {
|
||||||
headers.putIfAbsent("Content-Type",
|
headers['Content-Type'] =
|
||||||
() => "multipart/form-data; boundary=(boundary.stringValue)");
|
"multipart/form-data; boundary=\\(boundary.stringValue)";
|
||||||
} else if (requestModel.hasJsonData || requestModel.hasTextData) {
|
} else if(requestModel.hasJsonData||requestModel.hasTextData){
|
||||||
headers.putIfAbsent(
|
headers['Content-Type'] = 'application/json';
|
||||||
kHeaderContentType, () => requestModel.bodyContentType.header);
|
}
|
||||||
}
|
|
||||||
if (headers.isNotEmpty) {
|
if (headers.isNotEmpty) {
|
||||||
var templateHeader = jj.Template(kTemplateHeaders);
|
var templateHeader = jj.Template(kTemplateHeaders);
|
||||||
result += templateHeader.render({"headers": headers});
|
result += templateHeader.render({"headers": headers});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requestModel.hasFormData || requestModel.hasBody) {
|
if (requestModel.hasFormData) {
|
||||||
result += kTemplateBody;
|
result += kTemplateFormDataBody;
|
||||||
|
} else if (requestModel.hasJsonData || requestModel.hasTextData) {
|
||||||
|
result += kTemplateJsonTextBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
result += kTemplateEnd;
|
result += kTemplateEnd;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user