#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>