Попытка потокового многочастного почтового запроса в API. Работает нормально, но full отправляет тело, но не передает запрос. API принимает потоковые запросы и был подтвержден потоковым запросом Node JS. Он не работает с моим кодом Alamofire. Я пытаюсь сделать так, чтобы почтовый запрос транслировался и начинал обрабатываться сервером так, как он транслируется. Это мой код:
'' '
var url = URL(string: "https://xxx/login")!
var request = URLRequest(url: url)
let session = URLSession.shared
request.httpMethod = "POST"
url = URL(string: "https://app.rmarlan.net/uploadS3")!
request = URLRequest(url: url, cachePolicy:
.reloadIgnoringLocalCacheData,timeoutInterval: 10)
request.httpMethod = "POST"
var boundary = generateBoundaryString()
print ("boundry", boundary)
request.setValue("multipart/form-data; boundary=" + boundary,
forHTTPHeaderField: "Content-Type")
// request.httpBody = data
var body = NSMutableData()
var imageData = data
body.appendString("--\(boundary)\r\n")
body.appendString("Content-Disposition: form-data; name=\"image\";
filename=\"image.png\"\r\n")
body.appendString("Content-Type: image/png\r\n\r\n")
body.append (imageData)
body.appendString("\r\n")
body.appendString("--\(boundary)--\r\n")
request.setValue("\(body.length)", forHTTPHeaderField:"Content-Length")
request.httpBody = body as Data
request.setValue(String(data.count), forHTTPHeaderField: "Content-Length")
request.httpShouldHandleCookies = false
let uploadTask = session.uploadTask(withStreamedRequest: request)
// uploadTask.resume()
AF.upload (multipartFormData: { multipartFormData in
multipartFormData.append("12345".data(using: String.Encoding.utf8,
allowLossyConversion: false)!, withName: "field1")
multipartFormData.append("67890".data(using: String.Encoding.utf8,
allowLossyConversion: false)!, withName: "field2")
multipartFormData.append( data , withName: "image", mimeType:
"image/png")
multipartFormData.append(data, withName: "image", fileName:
"image.png", mimeType: "image/png")
}, to: "https://xxx/uploadS3")
.responseJSON { response in
debugPrint(response)
}
}
case nil: do {} // only remaining possible value
} //end switch
} // end saveIt
' ''