Bonjour

J'ai un logiciel qui communique avec un organisme extérieur. Pour cela la société m'a fournit deux certificats (.crt) pour pouvoir m'identifier lors de la communication. Il m'ont fournis 2 liens URL, l'un pour réalisé mes tests et l'autre pour la production.


Voici comment je réalise ma requête Https et je récupère les données.
en amont, avec les données saisie avec l'utilisateur, je crées une requête au format xml.

J'ai récupérer le code de la personne que je remplace. Il a réalisé une procédure sous java :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
gsReponse=httpRequestPostAR(gsUrlTest,UnicodeVersAnsi(sRequete))

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
PUBLIC static string httpRequestPostAR(string URLDestination,string XmlSoap) 
{
 
    string username="XXXXXXX";
    string password="XXXXXXXX";
    string strResponse = null;
    try {
        HttpClient client = new DefaultHttpClient();
        httpPost Post = new httpPost(URLDestination);
        StringEntity se = new StringEntity(XmlSoap);
        se.setContentEncoding("application/soap+xml");
        post.setEntity(se);
 
        post.addHeader("Content-type", "application/soap+xml; charset=utf-8"); 
        post.addHeader("SOAPAction", "urn:servicepecb2:4.0.1:calculer");
        post.addHeader("Accept-Charset", "utf-8");
        post.addHeader("Accept", "text/xml,application/text+xml,application/soap+xml");
 
        client.getConnectionManager().getSchemeRegistry().register(new Scheme("SSLSocketFactory", SSLSocketFactory.getSocketFactory(), 443));
 
        httpResponse response = client.execute(Post);
        HttpEntity entity = response.getEntity();
        StringBuffer sb1 = new StringBuffer();
        BufferedReader br1 = new BufferedReader(new InputStreamReader(entity.getContent()));
        string in1 = "";
        WHILE ((in1 = br1.readLine()) != null) 
        {
            sb1.append(in1 + "\n");
        }
        br1.close();
        strResponse=sb1.toString();
    }
    catch (IOException e) 
    {
 
    }
    RETURN strResponse;
}

Pour que cette requête fonctionne, je dois installer les 2 certificats sur l'android. Pour cela, j'ai ajouté à mon .apk les deux fichiers. Lors de l'installation du logiciel, il y a une copie des deux certificats qui se réalise sur la sdcard de l'android.
Ensuite l'utilisateur doit installer manuellement les deux certificats en allant dans Paramètres > Personnel > Sécurité > Stockage des identifiants > Installer depuis la mémoire puis suivre la procédure d'installation.

Question n°1 :
Est ce qu'il est possible d'installer automatiquement les deux certificats? J'ai regardé un peu partout et je ne pense pas que c'est réalisable

Question n°2 :
Est ce qu'il est possible dans le code de la requête, d'aller pointer soit sur les deux fichiers?
Je pense que je dois créer un Keystore et importer les deux certificats dedans. Après comment j'associe mon keystore à mon projet sous windev mobile? et au niveau du code, je ne connais pas java.

Cordialement Law56100