Загрузка изображения на сервер не работает, если не сделан первый запрос от почтальона - PullRequest
0 голосов
/ 12 декабря 2018

Я написал следующий код для загрузки изображения профиля с помощью Alamofire.Теперь проблема в том, что когда я загружаю изображение, API-интерфейс успешно выполняется, но изображение не загружается.Но если то же самое я делаю, загружая изображение из Почтальона, тот же код начинает работать.Зачем?Есть ли проблема в моем коде.Пожалуйста, дайте мне знать, где я иду не так.

let parameters = [
        "contact_no": user.mobile,
        "first_name": user.firstName,
        "last_name": user.lastName,
        "email_id": user.email,
        "gender_id": user.gender,
        "device_id": deviceId,
        "state_id": user.stateID,
        "city_id": user.cityID,
    ]
    let credentialData = "\(constants.username):\(constants.password)".data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!

    let base64Credentials = credentialData.base64EncodedString()

    let headers = [
        "Authorization": "Basic \(base64Credentials)"
    ]
     let image = UIImagePNGRepresentation(self.profileImg.image!)

        Alamofire.upload(multipartFormData:{ (multipartFormData) in
                       multipartFormData.append(image!, withName: "profile_image", fileName: "test.png", mimeType: "image/png")
            for (key, value) in parameters {
                    multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
            }
            },usingThreshold:UInt64.init(),
                         to:url,
                         method:.post,
                         headers:headers,
                         encodingCompletion: { encodingResult in
                            vwWait.performSelector(onMainThread: #selector(UIView.removeFromSuperview), with: nil, waitUntilDone: false)
                            switch encodingResult {
                            case .success(let upload, _, _):
                                upload.responseJSON { response in
                                    debugPrint(response)

                                    self.getProfileData()
                                }
                            case .failure(let encodingError):
                                print(encodingError)
                            }

    })
...