FAQ n°24198, publiée le 14/03/2023, mise à jour le 04/09/2023
Dans quel cas une requête HTTPS exécutée depuis iOS échoue avec la réponse "code erreur 100138" lorsque l'application est recompilée en version 28 ?

Une requête HTTPS pour l'appel d'un webservice SOAP, d'une API REST (…) exécutée depuis iOS peut échouer alors qu'elle est acceptée depuis Windows ou Android avec la réponse suivante :


Une erreur système a été détectée pendant l'envoi de la requête HTTP.

Code erreur 100138

Niveau erreur non fatale




Cela peut être le cas avec les fonctions HTTPEnvoie ou RESTEnvoie si : 

  • la requête est de type POST,
  • la taille des données du contenu de la requête excède 65 535 octets,
  • la négociation avec le serveur contacté échoue en utilisant le protocole HTTP 2,
  • l'application est compilée avec WINDEV Mobile 28 jusqu'à "Update 1" (280051, 280066p, 280066r#) qui utilisent OpenSSL 3 pour sécuriser les échanges HTTPS.


Afin de permettre l'exécution de la requête dans ce cas, il suffit de forcer l'exécution de HTTP 1.1. Exemple : 


ReqHTTP est un httpRequête

RéponseHTTP est un httpRéponse


ReqHTTP.URL = "https://monserveur/"

ReqHTTP.Méthode = httpPost

ReqHTTP.Contenu = MonJson


ReqHTTP.VersionHTTP = httpVersion1_1


RéponseHTTP = HTTPEnvoie(ReqHTTP)



Précisions : 

  • A partir de la version 28 "Update 2" le passage par HTTP 1.1 se fera automatiquement sous iOS si ce cas est rencontré.

  • En version finale 280051n et "Update 1" 2800669 et 280066r#, cette solution affiche un warning de compilation sous l'éditeur : 
    Warning : La constante 'httpVersion1_1' n'est pas disponible pour la cible 'iOS'.
    Vous pouvez désactiver le code pour la configuration courante grâce à une condition de compilation (<COMPILE SI ...>).

    Ce warning  peut être ignoré, la constante sera bien prise en compte.