Я пытаюсь загрузить некоторые данные на свой сервер. Я пытаюсь поместить свои данные в файл и загрузить их. Тело запроса - multipart / form_data с единственным параметром с именем "filemessage", содержащим текстовые данные, имеющие тип содержимого приложения / JSON
Я не уверен, как обращаться с приложением / json как типом контента для внутренних данных, содержащихся в "filemessage".
Я получаю 500 внутренняя ошибка сервера
{
"erMessage": "Неизвестная ошибка",
"erCode": "UnknownErCode"
}
Вот код.
func testMultipart()
{
let path = Bundle.main.path(forResource: "testregister", ofType: "txt")
do {
let mtext = try String(contentsOfFile: path!)
let dataA = Data(mtext.utf8)
guard let url = URL(string: "MY URL") else { return false }
var request = URLRequest(url: url)
request.httpMethod = "POST"
let mKey = "filemessage"
let mFileName = "testregister"
let mMimeType = "text/plain"
let boundary = generateBoundary()
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
let lineBreak = "\r\n"
var body = Data()
body.append("--\(boundary + lineBreak)")
body.append("Content-Disposition: form-data; name=\"\(mKey)\"; filename=\"\(mFileName)\"\(lineBreak)")
body.append("Content-Type: \(mMimeType + lineBreak + lineBreak)")
body.append(dataA)
body.append(lineBreak)
request.httpBody = dataA
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
}.resume()
}
catch(_){print("error")}
}
func generateBoundary() -> String
{
return "Boundary-\(NSUUID().uuidString)"
}