2017-06-19 2 views
1

Ich möchte eine POST Anfrage mit Alamofire SessionManager senden.Verwendung von manager.request mit POST

las ich die Dokumentation auf https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%204.0%20Migration%20Guide.md#parameter-encoding-protocol

aber ich ein Beispiel für die Verwendung von Anforderungs- und POST, nur nicht sehen, laden.

Die Beispiele gibt es:

let parameters: Parameters = ["foo": "bar"] 

Alamofire.request(urlString, parameters: parameters) // Encoding => URLEncoding(destination: .methodDependent) 
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding(destination: .queryString)) 
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding(destination: .httpBody)) 

// Static convenience properties (we'd like to encourage everyone to use this more concise form) 
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding.default) 
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding.queryString) 
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding.httpBody) 

Mein Code ist:

manager.request(url, method: .post, parameters: parameters, encoding: .url) .responseJSON { response in fulfill(response) }

die die Methodensignatur entspricht (von dem, was ich sagen kann), aber ich erhalte eine Fehlermeldung „Extra-Parameter method: im Aufruf

+0

Check diese Antwort von mir https://stackoverflow.com/questions/44484772/how-to-post-nested-json- by-swiftyjson-and-alamofire/44500753 # 44500753 vielleicht kann Ihnen helfen, lassen Sie es mich wissen –

Antwort

1

Sie müssen URLRequest mit Ihren Parametern in Körper alsentsprechen Dieser Code

kann Ihnen helfen,

var request = URLRequest(url: urlString!) 
    request.httpMethod = "POST" 
    request.setValue("application/json", forHTTPHeaderField: "Content-Type") 

    request.httpBody = try! JSONSerialization.data(withJSONObject: parameters) 

    manager.request(request) 
      .responseJSON { response in 
       fulfill(response) 
     } 

hoffe, das hilft

+0

Hallo, das funktioniert für mich und ich werde akzeptieren. Allerdings habe ich ein Problem mit der Rückgabe dieser Versprechen: https://stackoverflow.com/questions/44640197/cannot-convert-return-expression-of-type-promise-datarequest-zur-zurückkehren – quantumpotato

+0

@quantumpotato Ich habe keine Erfahrung mit Promise, aber Sie können überprüfen, diese Pod kann Ihnen vielleicht helfen https://github.com/PromiseKit/Alamofire- –

+0

Hm Ich werde das ausprobieren, danke. – quantumpotato

Verwandte Themen