2016-11-21 25 views
0

蒸気を使用して自分のアプリの画像をホストしています。画像を受信して​​印刷するには、次のコードがあります。Swift 3蒸気によるマルチパート投稿要求を送信する方法

drop.post("saveArt") { request in 
if let contentType = request.headers["Content-Type"], contentType.contains("image/png"), let bytes = request.body.bytes { 
    let image = NSImage(data: Data(bytes)) 
    print(image) 
    return JSON(["Testawesome":"awesome123"]) 
} 
return JSON(["test":"123"]) 
} 

私は現在の投稿要求コードを使用していますか?

let tiffData = imagetosend?.tiffRepresentation 
let imageRep = NSBitmapImageRep(data: tiffData!) 
let image_data = imageRep?.representation(using: .JPEG, properties: [:]) 
print("Hi") 

let url = NSURL(string: "http://localhost:8080/getArt") 

let request = NSMutableURLRequest(url: url! as URL) 
request.httpMethod = "POST" 


//define the multipart request type 

request.setValue("multipart/form-data", forHTTPHeaderField: "Content-Type") 


let body = NSMutableData() 

let mimetype = "image/png" 

//define the data post parameter 




body.append("Content-Type: \(mimetype)\r\n\r\n".data(using: String.Encoding.utf8)!) 
body.append(image_data!) 
body.append("\r\n".data(using: String.Encoding.utf8)!) 


request.httpBody = body as Data 



let session = URLSession.shared 


let task = session.dataTask(with: request as URLRequest) { 
    (
    data, response, error) in 

    guard let _:NSData = data as NSData?, let _:URLResponse = response , error == nil else { 
     print(error?.localizedDescription) 
     return 
    } 

    let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) 
    print(dataString) 

} 

task.resume() 
+0

このデータをVapor、OSXまたはiOSアプリから送信しますか? – Quver

+0

Alamofireをこの回答のように使用できます。http://stackoverflow.com/a/32204889/3803872 – Quver

+0

回答は私のために働いたものを投稿するのに役立ちませんでした。 –

答えて

1

このAlamofireメソッドを使用して解決しました。

Alamofire.request("YOUR URL", method: .post, parameters: parm, encoding: JSONEncoding.default).responseJSON(completionHandler: { json in 
     // If you want to return json. 
     print(json) 
    }) 
+0

LinuxマシンでAlamofireを使ってコードをどのように記述するのか興味深いでしょう。私はVaporプロジェクトにAlamofireバージョン4を追加しましたが、NetworkReachabilityManager.swiftの 'SystemConfiguration'モジュールがないため、Vapor.cloudでプロジェクトを構築できませんでした。 (コードはもちろん私のMacで動作していた) – Gabriel

関連する問題