%n
является переносимым на платформах \n
.
См. синтаксис строки форматирования в справочной документации :
'n' разделитель строк. Результатом является разделитель строк в конкретной платформе
blockquote>
Похоже, я построил тело неправильно. Ниже приведено правильное решение, как это сделать. Я внимательно следил за сгенерированным http-кодом Postmans, чтобы создать следующий запрос:
func anonymousUpload(_ image: CGImage){
// Convert the file to base64
let base64Image:String = imageToBase64String(image)!
// Create our url
let url = URL(string: "https://api.imgur.com/3/image")!
let request = NSMutableURLRequest.init(url: url)
request.httpMethod = "POST"
request.addValue("Client-ID " + imgurAPI.CLIENT_ID, forHTTPHeaderField: "Authorization")
// Build our multiform and add our base64 image
let boundary = NSUUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
let body = NSMutableData()
body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"image\"\r\n\r\n".data(using: .utf8)!)
body.append(base64Image.data(using: .utf8)!)
body.append("\r\n".data(using: .utf8)!)
body.append("--\(boundary)--\r\n".data(using: .utf8)!)
request.httpBody = body as Data
// Begin the session request
let task = URLSession.shared.dataTask(with: request as URLRequest){ data, response, error in
if (error != nil){
print("error: \(error)")
return
}
print("response: \(response!)")
let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print("response string: \(responseString!)")
}
task.resume()
}