Загрузка фотографий — Код состояния ошибки 500 — swift 3

#httprequest #swift3 #image-uploading #alamofire

#httprequest #swift3 #загрузка изображений #alamofire

Вопрос:

Я пытаюсь загрузить фотографию из UIImage и получаю сообщение об ошибке statuscode 500: «Код состояния должен быть 200, но равен 500», может кто-нибудь помочь с этим или, может быть, дать другое решение для загрузки файла изображения на сервер в swift 3? ИЛИ КАК МНЕ РЕШИТЬ ЭТО С ПОМОЩЬЮ ALAMOFIRE?

 let imageData = UIImageJPEGRepresentation(self.images.firstObject as! UIImage, 0.9)

let myBase64Data = imageData!.base64EncodedString(options: [])

let request = NSMutableURLRequest(url: URL(string: "http://www.example.com/members/mobileapi/uploadSingleFile/")!)
request.httpMethod = "POST"
let postString = "username=tiagotestamp;password=testamp;bpo_id=248522amp;encoded_string=(myBase64Data)amp;image_name=testFromIphone"

request.httpBody = postString.data(using: String.Encoding.utf8)

let task = URLSession.shared.dataTask(with: request as URLRequest) {

    (data, response, error) in
    guard error == nil amp;amp; data != nil else {                                                              
        print("error=(error)")
        return
    }

    if let httpStatus = response as? HTTPURLResponse , httpStatus.statusCode != 200 {
        print("statusCode should be 200, but is (httpStatus.statusCode)")
        print("response = (response)")
    }

    let responseString = String(data: data!, encoding: String.Encoding.utf8)
    print(responseString!)
}
task.resume()
  

Ответ №1:

Это происходило потому, что Xcode не разрешает http только https по соображениям безопасности. Это было решено, включая приведенный ниже код в info.plist

 <key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>