Swiftで「curl -F」コマンドと同等の処理を実現したい
Swift 3.0にて下記curlコマンドと同等の処理を実現したいと考えておりますが、実装方法が不明のため、ご教授ください。
【実現したいコマンド】
curl -X POST -F photo=@【画像ファイル(PNG)】 -F user_id=1 -F tag_id=1 http://X.X.X.X/
【具体例】
curl -X POST -F photo=@/Users/test/test.PNG -F user_id=1 -F tag_id=1 http://192.168.1.1/test/
現状私が実装しているSwiftファイルは下記の通りです。
var request = URLRequest(url:URL(string:"http://192.168.1.1/test")!)
request.httpMethod = "POST"
// 画像データを読み出し、Data型に変換する.
let file: NSData = UIImagePNGRepresentation(image)! as NSData
//POSTするデータを設定する
let postString = "photo=\(file)&user_id=1&tag_id=1"
request.httpBody = postString.data(using: .utf8)
//タスクを作成する
let task = URLSession.shared.dataTask(with: request, completionHandler: {
(data, response, error) in
if error != nil {
print(error)
return
}
print("response: \(response!)")
})
//タスクを開始する
task.resume()