Bonjour,
J'essaie d'envoyer une requête POST en HTTPS à une API (vCloud, pour être précise) en suivant le tutoriel suivant : http://blog.tsugliani.fr/featured/lo...erated-cookie/
Voici mon code (j'ai retiré l'IP, le login et le mot de passe, c'est tout) :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
 
import javax.net.ssl.HttpsURLConnection;
 
import org.apache.commons.codec.binary.Base64;
 
public class Toto {
 
	public static void main(String[] args) {
 
		try {
	    	String httpsURL = "https://1.2.3.4/cloud/org/bluage/";
	    	URL url = new URL(httpsURL);
	    	HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
	    	conn.setUseCaches(false);
	    	conn.setDoInput(true);
	    	conn.setDoOutput(true); // true indicates POST request
	    	conn.setRequestMethod("POST");
	    	String notEncodedCredentials = "myLogin:myPassword";
	    	byte[] encodedCredentials = Base64.encodeBase64(notEncodedCredentials.getBytes());
	    	conn.setRequestProperty("Authorization", "Basic " + new String(encodedCredentials));
	    	conn.setRequestProperty("Accept", "application/*+xml;version=1.5");
 
	    	// send post request
	    	DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
	    	String urlParameters = "";
	    	wr.writeBytes(urlParameters);
	    	wr.flush();
	    	wr.close();
 
	    	int responseCode = conn.getResponseCode();
	    	System.out.println("Response code: " + responseCode);
	    	BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
	    	String inputLine;
	    	StringBuffer response = new StringBuffer();
	    	while ((inputLine = in.readLine()) != null) {
	    		response.append(inputLine);
	    	}
	    	in.close();
	    	// print result
	    	System.out.println(response.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
Arrivé à la ligne "DataOutputStream wr = new DataOutputStream(conn.getOutputStream());" le code lance une exception e : "javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present"
Quelle est mon erreur et comment dois-je m'y prendre pour envoyer correctement une requête POST à une API vCloud ? Merci.