Contexte
Je veux envoyer une chaîne base64 d'une application iOS à un back-end de démarrage de printemps en utilisant la Alamofire lib.iOS: failed prise de courant avec Spring Boot
Problème
Il échoue avec cette erreur:
2017-08-31 10:22:49.547259+0200 Epic[851:367066] []
nw_endpoint_flow_prepare_output_frames [6.1 46.30.215.94:80 ready
socket-flow (satisfied)] Failed to use 1 frames, marking as failed
2017-08-31 10:22:49.549173+0200 Epic[851:367066] []
nw_endpoint_handler_add_write_request [6.1 46.30.215.94:80 failed
socket-flow (satisfied)] cannot accept write requests
2017-08-31 10:22:49.552773+0200 Epic[851:367069] []
tcp_connection_write_eof_block_invoke Write close callback received
error: [22] Invalid argument
Ce problème est survenu lorsque je l'ai changé point final de mon environnement de développement local Heroko. (http://heroku.com).
Je peux envoyer des images plus petites sans problème (100x100) mais pas (600x600).
J'ai essayé:
-Pour ajouter un en-tête http "Content-Length" et la longueur du corps JSON.
-Pour passer de l'envoi d'un corps JSON aux paramètres d'URL.
Des suggestions? Puis-je configurer heroku spring boot pour accepter de plus grandes requêtes de données http ou est-ce un réglage à faire dans l'application?
Mon code:
func createImage(_ image: UIImage, success: @escaping (String)->(), failed: @escaping (Void)->(Void)){
let base64 = image.getImageAsBase64()
Alamofire.request(self.url, method: .put, parameters: ["image" : base64], headers: self.headers)
.responseString(completionHandler: {response in
switch(response.result) {
case .success(let response):
success(response)
break;
case .failure(let error):
print(error)
failed()
break;
}
})
}