Estou tentando fazer uma solicitação de postagem HTTP com um corpo JSON:
Como ser capaz de adicionar um NSdictionnary ao corpo da solicitação HTTP.
Aqui está meu código, ele não parece funcionar corretamente.
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")
. Caso contrário, ele faz o tipo para formulários. A configuração supercomum do ExpressJS + bodyParser obterá resultados incorretos apenas algumas vezes, dependendo do conteúdo . Portanto, isso gera falhas silenciosas.Postagem HTTP em Swift capturando os erros
fonte
Swift 4 e 5
HTTP POST request
usandoURLSession API
em Swift 4Usando Alamofire:
fonte
O seguinte código do Swift 5 Playground mostra uma maneira possível de resolver seu problema usando
JSONSerialization
eURLSession
:fonte
fonte
Resposta perfeita da nRewik atualizada para 2019:
Faça o dicionário:
Monte assim:
Crie a solicitação exatamente assim, observe que é uma "postagem"
Em seguida, envie, verificando se há um erro de rede (portanto, sem largura de banda, etc.) ou uma resposta de erro do servidor:
Felizmente agora é tão fácil.
fonte
você pode fazer algo assim:
fonte
SWIFT 5 pessoas aqui:
fonte
fonte
Swift4 - Solução Apple "POST" e "Codable"
Upload de dados para um site usando request.httpmethod = "Post" e Codable Stucts :
@ver: Listagem 2 Configurando uma solicitação de URL
fonte
fonte
fonte
fonte
uma combinação de várias respostas encontradas na minha tentativa de não usar frameworks de terceiros como o Alamofire.
fonte
fonte