Estoy tratando de hacer una solicitud de publicación HTTP con un cuerpo JSON:
Cómo poder agregar un NSdictionnary al cuerpo de la solicitud HTTP.
Aquí está mi código, no parece funcionar correctamente.
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")
. De lo contrario, hace el tipo de formularios. La configuración súper común de ExpressJS + bodyParser obtendrá resultados incorrectos para esto solo algunas veces, dependiendo del contenido . Entonces esto genera fracasos silenciosos.HTTP Post en Swift capturando los errores
fuente
Swift 4 y 5
HTTP POST request
usarURLSession API
en Swift 4Usando Alamofire:
fuente
El siguiente código de Swift 5 Playground muestra una forma posible de resolver su problema usando
JSONSerialization
yURLSession
:fuente
fuente
Respuesta perfecta de nRewik actualizada a 2019:
Haz el diccionario:
Móntelo así:
Cree la solicitud exactamente así, observe que es una "publicación"
Luego envíe, verificando si hay un error de red (por lo tanto, no hay ancho de banda, etc.) o una respuesta de error del servidor:
Afortunadamente ahora es así de fácil.
fuente
puedes hacer algo como esto:
fuente
SWIFT 5 personas aquí:
fuente
fuente
Swift4 - Solución de Apple "POST" y "Codificable"
Subir datos a un sitio web mediante request.httpmethod = "Publicar" y elementos codificables :
@see: Listado 2 Configurando una solicitud de URL
fuente
fuente
fuente
fuente
una combinación de varias respuestas encontradas en mi intento de no usar marcos de terceros como Alamofire.
fuente
fuente