@@ -111,29 +111,34 @@ function parseFormData (body, mode, trim, indent) {
111111 parameters = '[\n' + _ . join ( parameters , ',\n' ) + ']' ;
112112 bodySnippet = `let parameters = ${ parameters } as [[String: Any]]\n\n` ;
113113 bodySnippet += 'let boundary = "Boundary-\\(UUID().uuidString)"\n' ;
114- bodySnippet += 'var body = "" \nvar error: Error? = nil\n' ;
114+ bodySnippet += 'var body = Data() \nvar error: Error? = nil\n' ;
115115 bodySnippet += 'for param in parameters {\n' ;
116116 bodySnippet += `${ indent } if param["disabled"] != nil { continue }\n` ;
117117 bodySnippet += `${ indent } let paramName = param["key"]!\n` ;
118- bodySnippet += `${ indent } body += "--\\(boundary)\\r\\n"\n` ;
118+ bodySnippet += `${ indent } body += Data( "--\\(boundary)\\r\\n".utf8) \n` ;
119119 // eslint-disable-next-line no-useless-escape
120- bodySnippet += `${ indent } body += "Content-Disposition:form-data; name=\\"\\(paramName)\\"\"\n` ;
120+ bodySnippet += `${ indent } body += Data( "Content-Disposition:form-data; name=\\"\\(paramName)\\"\".utf8) \n` ;
121121 bodySnippet += `${ indent } if param["contentType"] != nil {\n` ;
122- bodySnippet += `${ indent . repeat ( 2 ) } body += "\\r\\nContent-Type: \\(param["contentType"] as! String)"\n` ;
122+ bodySnippet += `${ indent . repeat ( 2 ) } body += Data( "\\r\\nContent-Type: \\(param["contentType"] as! String)".utf8) \n` ;
123123 bodySnippet += `${ indent } }\n` ;
124124 bodySnippet += `${ indent } let paramType = param["type"] as! String\n` ;
125125 bodySnippet += `${ indent } if paramType == "text" {\n` ;
126126 bodySnippet += `${ indent . repeat ( 2 ) } let paramValue = param["value"] as! String\n` ;
127- bodySnippet += `${ indent . repeat ( 2 ) } body += "\\r\\n\\r\\n\\(paramValue)\\r\\n"\n` ;
127+ bodySnippet += `${ indent . repeat ( 2 ) } body += Data( "\\r\\n\\r\\n\\(paramValue)\\r\\n".utf8) \n` ;
128128 bodySnippet += `${ indent } } else {\n` ;
129129 bodySnippet += `${ indent . repeat ( 2 ) } let paramSrc = param["src"] as! String\n` ;
130- bodySnippet += `${ indent . repeat ( 2 ) } let fileData = try NSData(contentsOfFile: paramSrc, options: []) as Data\n` ;
131- bodySnippet += `${ indent . repeat ( 2 ) } let fileContent = String(data: fileData, encoding: .utf8)!\n` ;
132- bodySnippet += `${ indent . repeat ( 2 ) } body += "; filename=\\"\\(paramSrc)\\"\\r\\n"\n` ;
133- bodySnippet += `${ indent . repeat ( 2 ) } + "Content-Type: \\"content-type header\\"\\r\\n\\r\\n` ;
134- bodySnippet += '\\(fileContent)\\r\\n"\n' ;
135- bodySnippet += `${ indent } }\n}\nbody += "--\\(boundary)--\\r\\n";\n` ;
136- bodySnippet += 'let postData = body.data(using: .utf8)' ;
130+ bodySnippet += `${ indent . repeat ( 2 ) } let fileURL = URL(fileURLWithPath: paramSrc)\n` ;
131+ bodySnippet += `${ indent . repeat ( 2 ) } if let fileContent = try? Data(contentsOf: fileURL) {` ;
132+ bodySnippet += `${ indent . repeat ( 3 ) } body += ("; filename=\\"\\(paramSrc)\\"\\r\\n".utf8)\n` ;
133+ bodySnippet += `${ indent . repeat ( 3 ) } body += Data("Content-Type: \\"content-type header\\"\\r\\n".utf8)\n` ;
134+ bodySnippet += `${ indent . repeat ( 3 ) } body += Data("\\r\\n".utf8)\n` ;
135+ bodySnippet += `${ indent . repeat ( 3 ) } body += fileContent\n` ;
136+ bodySnippet += `${ indent . repeat ( 3 ) } body += Data("\\r\\n".utf8)\n` ;
137+ bodySnippet += `${ indent . repeat ( 2 ) } }\n` ;
138+ bodySnippet += `${ indent } }\n` ;
139+ bodySnippet += '}\n' ;
140+ bodySnippet += 'body += Data("--\\(boundary)--\\r\\n".utf8);\n' ;
141+ bodySnippet += 'let postData = body\n' ;
137142 return bodySnippet ;
138143}
139144
0 commit comments