2016-03-23 15 views
0

Sunucuya bir görüntü yüklemeye çalışıyorum. Şimdilik, name = 'image' olup olmadığını kontrol eden bir hata yanıtı alıyorum ve hata, bunun olmadığı anlamına geliyor.Görüntüye sunucu yükleyemiyor Resim

body.appendString("Content-Disposition: form-data; name='image'; filename='test.jpg'") 

POST isteğinin benim tam kod şudur: Bunu ayarlamak çizgi şudur ben 200 alırım ve tek sorun gerçekten bilemiyorum adı parametresi ile olduğunu.

func imageUploadRequest() 
{ 

    let stringUrl = "http://88.162.41.55/app_backend/public/api/v1/image?_r=1836486547600309" 
    let URL = NSURL(string: stringUrl.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)! 
    let request = NSMutableURLRequest(URL: URL) 
    request.HTTPMethod = "POST"; 
    request.setValue("Bearer \(jwtToken)", forHTTPHeaderField: "Authorization") 

    let boundary = generateBoundaryString() 

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

    let imageData = UIImageJPEGRepresentation(image, 1) 

    if(imageData == nil) { 
     print("image data is nil") 
     return 
    } 

    let body:NSMutableData = NSMutableData() 
    body.appendString("--\(boundary)\r\n") 
    body.appendString("Content-Disposition: form-data; name='image'; filename='test.jpg'") 
    body.appendString("Content-Type: image/jpg") 
    body.appendData(imageData!) 
    body.appendString("\r\n") 

    body.appendString("--\(boundary)--\r\n") 

    request.HTTPBody = body 

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
     data, response, error in 

     if error != nil { 
      print("error=\(error)") 
      return 
     }    
     let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
     print(" response = \(responseString!)") 

     do { 
      let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as? NSDictionary 
      print("json", json) 
     } catch { 
      print("bad things happened") 
     } 

    } 

    task.resume() 
} 

Herhangi bir fikir? Çok teşekkür ederim!!

+0

Kullanım NSURLSession, diğer ay benzer sorununa çözüm yayınlanmıştır. – user3069232

+0

Teşekkür ederim, ama kullanmadığım şey bu değil mi? – Nch

+0

Evet; Üzgünüm, doğru sözdizimini kullanıyorsunuz. İşte yaptığım benzer bir çağrı örneği; Birkaç önemli farkla, özellikle de parametreleri kodlarken. – user3069232

cevap

0

Numune NSURLSession

func getMetaData(lePath:String, completion: (string: String?, error: ErrorType?) -> Void) { 
// **** get_metadata **** 
    let request = NSMutableURLRequest(URL: NSURL(string: "https://api.dropboxapi.com/2/files/get_metadata")!) 
    let session = NSURLSession.sharedSession() 
    request.HTTPMethod = "POST" 

    request.addValue("Bearer ab-blah", forHTTPHeaderField: "Authorization") 
    request.addValue("application/json",forHTTPHeaderField: "Content-Type") 
    request.addValue("path", forHTTPHeaderField: lePath) 
    let cursor:NSDictionary? = ["path":lePath] 
    do { 
     let jsonData = try NSJSONSerialization.dataWithJSONObject(cursor!, options: []) 
     request.HTTPBody = jsonData 
     print("json ",jsonData) 
    } catch { 
     print("snafoo alert") 
    } 

    let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in 
     if let error = error { 
      completion(string: nil, error: error) 
      return 
     } 
     let strData = NSString(data: data!, encoding: NSUTF8StringEncoding) 
     //print("Body: \(strData)\n\n") 
     do { 
      let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers); 


      completion(string: "", error: nil) 
     } catch { 
      completion(string: nil, error: error) 
     } 
    }) 
    task.resume() 

} 
İlgili konular