@@ -37,14 +37,16 @@ let multipartFormData = try! MultipartFormData(boundary: boundary) {
37
37
''' ;
38
38
39
39
final String kTemplateJsonData = '''
40
- let parameters = "{{jsonData}}"
41
- let postData = parameters.data(using: .utf8)
40
+ let postData = """
41
+ {{jsonData}}
42
+ """.data(using: .utf8)
42
43
43
44
''' ;
44
45
45
46
final String kTemplateTextData = '''
46
- let parameters = "{{textData}}"
47
- let postData = parameters.data(using: .utf8)
47
+ let postData = """
48
+ {{textData}}
49
+ """.data(using: .utf8)
48
50
49
51
''' ;
50
52
@@ -61,46 +63,55 @@ request.addValue("{{value}}", forHTTPHeaderField: "{{header}}")
61
63
62
64
""" ;
63
65
64
- final String kTemplateBody = """
66
+ final String kTemplateFormDataBody = """
65
67
request.httpBody = try! multipartFormData.encode()
68
+ """ ;
69
+
70
+ final String kTemplateJsonTextBody = """
71
+ request.httpBody = postData
66
72
67
73
""" ;
68
74
69
75
final String kTemplateEnd = """
76
+ let semaphore = DispatchSemaphore(value: 0)
77
+
70
78
let task = URLSession.shared.dataTask(with: request) { data, response, error in
79
+ defer { semaphore.signal() }
80
+
71
81
if let error = error {
72
- print("Error: (error.localizedDescription)")
82
+ print("Error: \\ (error.localizedDescription)")
73
83
return
74
84
}
75
85
guard let data = data else {
76
86
print("No data received")
77
87
return
78
88
}
79
89
if let responseString = String(data: data, encoding: .utf8) {
80
- print("Response: (responseString)")
90
+ print("Response: \\ (responseString)")
81
91
}
82
92
}
93
+
83
94
task.resume()
95
+
96
+ semaphore.wait()
84
97
""" ;
85
98
99
+
86
100
String ? getCode (HttpRequestModel requestModel) {
87
101
try {
88
102
String result = kTemplateStart;
89
103
90
- if (requestModel.hasFormData) {
91
- result += kTemplateFormDataImport;
92
- }
93
-
94
- var rec =
95
- getValidRequestUri (requestModel.url, requestModel.enabledParams);
104
+ var rec = getValidRequestUri (requestModel.url, requestModel.enabledParams);
96
105
Uri ? uri = rec.$1;
97
106
98
107
if (requestModel.hasFormData) {
108
+ result += kTemplateFormDataImport;
109
+
99
110
var formDataList = requestModel.formDataMapList.map ((param) {
100
111
if (param['type' ] == 'file' ) {
101
112
final filePath = param['value' ] as String ;
102
113
final fileName = path.basename (filePath);
103
- final fileExtension =
114
+ final fileExtension =
104
115
path.extension (fileName).toLowerCase ().replaceFirst ('.' , '' );
105
116
return {
106
117
'type' : 'file' ,
@@ -122,17 +133,19 @@ task.resume()
122
133
result += templateFormData.render ({
123
134
"formData" : formDataList,
124
135
});
125
- } else if (requestModel.hasJsonData) {
136
+ }
137
+ // Handle JSON data
138
+ else if (requestModel.hasJsonData) {
126
139
var templateJsonData = jj.Template (kTemplateJsonData);
127
140
result += templateJsonData.render ({
128
- "jsonData" :
129
- requestModel.body! .replaceAll ('"' , '\\ "' ).replaceAll ('\n ' , '\\ n' ),
130
- });
131
- } else if (requestModel.hasTextData) {
141
+ "jsonData" : requestModel.body!
142
+ });
143
+ }
144
+ // Handle text data
145
+ else if (requestModel.hasTextData) {
132
146
var templateTextData = jj.Template (kTemplateTextData);
133
147
result += templateTextData.render ({
134
- "textData" :
135
- requestModel.body! .replaceAll ('"' , '\\ "' ).replaceAll ('\n ' , '\\ n' ),
148
+ "textData" : requestModel.body!
136
149
});
137
150
}
138
151
@@ -144,19 +157,21 @@ task.resume()
144
157
145
158
var headers = requestModel.enabledHeadersMap;
146
159
if (requestModel.hasFormData) {
147
- headers. putIfAbsent ( " Content-Type" ,
148
- () => "multipart/form-data; boundary=(boundary.stringValue)" ) ;
149
- } else if (requestModel.hasJsonData || requestModel.hasTextData) {
150
- headers. putIfAbsent (
151
- kHeaderContentType, () => requestModel.bodyContentType.header);
152
- }
160
+ headers[ ' Content-Type' ] =
161
+ "multipart/form-data; boundary=\\ (boundary.stringValue)" ;
162
+ } else if (requestModel.hasJsonData|| requestModel.hasTextData){
163
+ headers[ 'Content-Type' ] = 'application/json' ;
164
+ }
165
+
153
166
if (headers.isNotEmpty) {
154
167
var templateHeader = jj.Template (kTemplateHeaders);
155
168
result += templateHeader.render ({"headers" : headers});
156
169
}
157
170
158
- if (requestModel.hasFormData || requestModel.hasBody) {
159
- result += kTemplateBody;
171
+ if (requestModel.hasFormData) {
172
+ result += kTemplateFormDataBody;
173
+ } else if (requestModel.hasJsonData || requestModel.hasTextData) {
174
+ result += kTemplateJsonTextBody;
160
175
}
161
176
162
177
result += kTemplateEnd;
0 commit comments