Merge pull request #693 from badnikhil/resolve-issue-692

fixed swift Code (Tested)
This commit is contained in:
Ankit Mahato
2025-03-30 17:26:25 +05:30
committed by GitHub
2 changed files with 786 additions and 504 deletions

View File

@@ -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;

View File

File diff suppressed because it is too large Load Diff