Я пытаюсь сделать HTTP-запрос на отправку с телом JSON:
Как добавить NSDictionnary в тело HTTP-запроса.
Вот мой код, похоже, он не работает должным образом.
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")
Ссылкаrequest.addValue("application/json", forHTTPHeaderField: "Content-Type")
. В противном случае он выполняет тип для форм. Супер-распространенная настройка ExpressJS + bodyParser только иногда дает неверные результаты , в зависимости от содержимого . Так что это порождает тихие неудачи.HTTP Post в Swift, фиксирующий ошибки
источник
Swift 4 и 5
HTTP POST request
использованиеURLSession API
в Swift 4Использование Alamofire:
источник
Следующий код Swift 5 Playground показывает возможный способ решения вашей проблемы с помощью
JSONSerialization
иURLSession
:источник
источник
Идеальный ответ nRewik обновлен до 2019 года:
Составьте словарь:
Соберите это так:
Создайте запрос точно так же, обратите внимание, что это «сообщение»
Затем отправьте, проверяя либо сетевую ошибку (то есть отсутствие пропускной способности и т. Д.), Либо ответ об ошибке от сервера:
К счастью, теперь это так просто.
источник
вы можете сделать что-то вроде этого:
источник
SWIFT 5 человек здесь:
источник
источник
Swift4 - решение Apple «POST» и «Codable»
Загрузка данных на веб-сайт с помощью request.httpmethod = "Post" и кодируемых элементов :
@see: Листинг 2 Настройка запроса URL
источник
источник
источник
источник
комбинация нескольких ответов, найденных в моей попытке не использовать сторонние фреймворки, такие как Alamofire.
источник
источник