Próbuję wysłać żądanie postu HTTP z treścią JSON:
Jak dodać NSdictionnary do treści żądania HTTP.
Oto mój kod, wygląda na to, że nie działa poprawnie.
var entry1 = Response(IdQuestion: 6510,IdProposition: 10,Time: 30)
var entry2 = Response(IdQuestion: 8284,IdProposition: 10,Time: 30)
Responses.append(entry1)
Responses.append(entry2)
let list = Responses.map { $0.asDictionary }
let json = ["List":list,"IdSurvey":"102","IdUser":"iOSclient","UserInformation":"iOSClient"]
let data : NSData = NSKeyedArchiver.archivedDataWithRootObject(json)
NSJSONSerialization.isValidJSONObject(json)
let myURL = NSURL(string: "http://www.myserver.com")!
let request = NSMutableURLRequest(URL: myURL)
request.HTTPMethod = "POST"
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.HTTPBody = data
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
println(response)
// Your completion handler code here
}
task.resume()
request.setValue("\(jsonData.length)", forHTTPHeaderField: "Content-Length")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
Refrequest.addValue("application/json", forHTTPHeaderField: "Content-Type")
. W przeciwnym razie wykonuje tekst dla formularzy. Bardzo powszechna konfiguracja ExpressJS + bodyParser tylko czasami da nieprawidłowe wyniki , w zależności od zawartości . Więc to rodzi ciche niepowodzenia.HTTP Post w Swift przechwytuje błędy
źródło
Swift 4 i 5
HTTP POST request
używanieURLSession API
w Swift 4Korzystanie z Alamofire:
źródło
Poniższy kod Swift 5 Playground pokazuje możliwy sposób rozwiązania problemu za pomocą
JSONSerialization
iURLSession
:źródło
źródło
Doskonała odpowiedź nRewik zaktualizowana do 2019 r .:
Utwórz słownik:
Złóż to w ten sposób:
Utwórz żądanie dokładnie w ten sposób, zauważ, że jest to „post”
Następnie wyślij, sprawdzając, czy nie wystąpił błąd sieci (czyli brak przepustowości itp.) Lub odpowiedź o błędzie z serwera:
Na szczęście teraz jest to takie proste.
źródło
możesz zrobić coś takiego:
źródło
SWIFT 5 osób tutaj:
źródło
źródło
Swift4 - rozwiązanie Apple „POST” i „Codable”
Przesyłanie danych do witryny internetowej za pomocą request.httpmethod = "Post" i kodowania :
@see: Listing 2 Konfiguracja żądania adresu URL
źródło
źródło
źródło
źródło
kombinacja kilku odpowiedzi, które znalazłem, próbując nie używać frameworków innych firm, takich jak Alamofire.
źródło
źródło