2016-10-30 2 views
8

Aktualisiert Alamofire 4.0.0 erwähnt nicht, wie Httpmethod & Httpheaders in Upload mit multipartFormData setzen. Deshalb google ich und fand Lösung in dieser stackoverflow Frage. Aber das Problem ist, dass ich dasselbe gemacht habe wie diese Antwort, dann wurde folgende Fehlermeldung erhalten und das Erstellen ist fehlgeschlagen. Bitte hilf mir, es zu lösen.Art des Ausdrucks ist mehrdeutig ohne mehr Kontext in Alamofire.upload swift 3

Art des Ausdrucks ist nicht eindeutig, ohne mehr Kontext

Hier meine Codierung ist:

let URL = try! URLRequest(url: Config.imageUploadURL, method: .post, headers: headers) 

Alamofire.upload(
    multipartFormData: { multipartFormData in 
     multipartFormData.append(self.imageData, withName: "image", fileName: "file.png", mimeType: "image/png") 
    }, 
    to: URL, 
    encodingCompletion: { encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseJSON { response in 
       if((response.result.value) != nil) { 

       } else { 

       } 
      } 
     case .failure(_): 

     } 
    } 
) 
+0

Hallo, was ist Config.imageUploadURL? Wie machst du urlRequestConvertible in Alamofire 4? – Sam

+1

@Sam lesen Sie unten Antwort Ich markierte als richtige Antwort. Wenn noch nicht klar, mach eine Frage und ich werde für dich antworten. – ppshein

+0

Danke, es hat geholfen! – Sam

Antwort

12

Alamofire.upload(multipartFormData:to:encodingCompletion:) nimmt einen URLConvertible für das to: Argument. Stattdessen sollten Sie Alamofire.upload(multipartFormData:with:encodingCompletion:) verwenden, die ein URLRequestConvertible für sein with: Argument verwendet.

Ich denke, Ihr Argument Name URL, die die gleiche ist wie der Typ URL() hilft bei der Erstellung von seltsamen Compiler-Fehler.

Nachfolgend stellt für mich:

let url = try! URLRequest(url: URL(string:"www.google.com")!, method: .post, headers: nil) 

Alamofire.upload(
    multipartFormData: { multipartFormData in 
     multipartFormData.append(Data(), withName: "image", fileName: "file.png", mimeType: "image/png") 
    }, 
    with: url, 
    encodingCompletion: { encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseJSON { response in 
       if((response.result.value) != nil) { 

       } else { 

       } 
      } 
     case .failure(_): 
      break 
     } 
    } 
) 
+0

Großartig, ich vermisste das stattdessen "mit" zu verwenden. Vielen Dank. – ppshein

0

Für mich ist die Build-Fehler durch eine multipartFormData.appendBodyData() verursacht wurde. Nach dem Ersetzen durch multipartFormData.append() wurde das Problem gelöst.

0

habe ich den gleichen Fehler, nach viel Zeit zu verbringen, fand ich, dass Problem war:

I MutableURLRequest statt vorbei URLRequest Objekt vorging. Deshalb habe ich diesen Fehler bekommen. Nach dem Gießen auf URLRequest, fängt es an zu arbeiten.

Verwandte Themen