Bonjour,

je doit réaliser une application communiquant avec un service web, classique. Et j'ai décidé d'utiliser Robospice pour la communication.

Mon souci est qu'a chaque exécutions de ma requête (extends SpringAndroidSpiceRequest) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
@Override
public User loadDataFromNetwork() throws Exception { 		
	Map<String, String> parameters = new HashMap<String, String>();
	parameters.put("email", email);
	parameters.put("password", password);
	parameters.put("firstname", firstName);
	parameters.put("birthday", birthday);
	parameters.put("sex", sex);
 
	return getRestTemplate().postForObject("https://*******", null, User.class, parameters);
}
J'ai une exception HttpClientErrorException : 418 I'm teapot. Apparemment c'est une blague mais je vous avoue que je ne l'a comprend pas et que ça commence a me fatiguer .

Je ne sais pas si ça joue mais je doit outre-passer la verification du certificat :
Code : 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
 
public static void unTrustSLL(){
	try {
		HttpsURLConnection.setDefaultSSLSocketFactory(getSSLSocketFactory());
	} catch (KeyManagementException e) {
		Log.e(Tool.class.getSimpleName(), e.getLocalizedMessage());
	} catch (NoSuchAlgorithmException e) {
		Log.e(Tool.class.getSimpleName(), e.getLocalizedMessage());
	}
}
 
private static SSLSocketFactory getSSLSocketFactory() throws NoSuchAlgorithmException, KeyManagementException{
    final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
 
			@Override
			public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
					throws CertificateException {}
 
			@Override
			public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
					throws CertificateException {}
 
			@Override
			public java.security.cert.X509Certificate[] getAcceptedIssuers() {
				return null;
			}    	    
		}
    };
 
    final SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init( null, trustAllCerts, new java.security.SecureRandom());
 
    return sslContext.getSocketFactory();
}
(Je sais c'est sale et ça rend vulnérable à une attaque HDM...)


En tout cas, je remercie tous ceux qui prendrons la peine de lire mon post