Потоковая Multipart Post Запрос Alamofire - PullRequest
0 голосов
/ 26 января 2020

Попытка потокового многочастного почтового запроса в 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

' ''

...