2015-06-10 36 views
3

我有這個命令的作品:如何捲翹轉換爲iOS的

curl -X POST -H -i -F [email protected]/Users/path/to/image.png http://server.com/users/userPic/6 

我寫我在斯威夫特的程序,我試圖讓這個相同的命令用POST請求發送一些圖像數據我的服務器。我很困惑如何將請求的「userPic = @」部分添加到我的請求中。目前我的雨燕代碼如下:

func sendUserPicToAPI() { 
    if let savedId = defaults.stringForKey("UserId") { 
     userId = savedId.toInt() 
    } 

    var imageData = UIImagePNGRepresentation(profPic.image) 
    var url = NSURL(string: "http://server.com/users/userPic/\(userId)") 
    var request = NSMutableURLRequest(URL: url!) 
    request.HTTPMethod = "POST" 
    request.HTTPBody = NSData(data: imageData!) 

    var response: NSURLResponse? = nil 
    var error: NSError? = nil 
    let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error) 

    let results = NSString(data:reply!, encoding:NSUTF8StringEncoding) 
    println("API Response: \(results)") 
} 

我引用這個stackoverflow post,但我仍然無法得到它的工作。我很困惑我做錯了什麼,如果有人知道正確的方式去做這件事。

回答

1

主要問題是,如果不先將圖像數據編碼爲多部分表單數據,則無法直接在HTTPBody中發佈圖像數據。一個很好的解釋是the RFC

我創建了一個簡單的框架Swift on github

基礎知識要做到這一點,你需要對它進行編碼的RFC下面你把它作爲身體前。