2017-08-31 1 views
0

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; 
      } 
     }) 
} 

Répondre