Saya mencoba membuat permintaan posting HTTP dengan badan JSON:
Bagaimana cara menambahkan NSdictionnary ke badan permintaan HTTP.
Ini kode saya, sepertinya tidak berfungsi dengan baik.
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")
. Jika tidak, ia melakukan jenis formulir. Penyiapan ExpressJS + bodyParser yang sangat umum terkadang akan mendapatkan hasil yang salah untuk hal ini , bergantung pada kontennya . Jadi ini melahirkan kegagalan diam-diam.HTTP Post di Swift menangkap kesalahan
sumber
Swift 4 dan 5
HTTP POST request
digunakanURLSession API
di Swift 4Menggunakan Alamofire:
sumber
Kode Playground Swift 5 berikut menunjukkan cara yang mungkin untuk menyelesaikan masalah Anda menggunakan
JSONSerialization
danURLSession
:sumber
sumber
Jawaban nRewik sempurna diperbarui hingga 2019:
Buat kamus:
Rakit seperti ini:
Buat permintaan persis seperti ini, perhatikan itu adalah "posting"
Kemudian kirim, periksa apakah ada kesalahan jaringan (jadi, tidak ada bandwidth, dll) atau respons kesalahan dari server:
Untungnya sekarang semudah itu.
sumber
Anda bisa melakukan sesuatu seperti ini:
sumber
SWIFT 5 Orang Di Sini:
sumber
sumber
Swift4 - Solusi Apple "POST" dan "Codable"
Mengunggah Data ke Situs Web menggunakan request.httpmethod = "Post" and Codable Stucts :
@lihat: Daftar 2 Mengkonfigurasi permintaan URL
sumber
sumber
sumber
sumber
kombinasi dari beberapa jawaban yang ditemukan dalam upaya saya untuk tidak menggunakan kerangka kerja pihak ketiga seperti Alamofire.
sumber
sumber