Ich erstelle eine Anwendung, in der ich XML-Daten direkt (ohne Schlüsselwertpaar) an die API senden möchte. Die API benötigt eine Zertifizierungsauthentifizierung, die hier im Code erfolgt. Jetzt möchte ich die Daten an die gleiche URL senden. HierWie POST XML-Daten beim Aufruf von API über JAVA?
ist das, was ich tun möchte:
@Override
public String demoAPI(String xmlData) {
StringBuilder sb = new StringBuilder();
String output="";
try {
KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream(new File("path-to-pfx-file")),
"password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(clientStore, "password".toCharArray());
KeyManager[] kms = kmf.getKeyManagers();
KeyStore trustStore = KeyStore.getInstance("JKS");
trustStore.load(new FileInputStream("path-to-jks-file"), "password".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(trustStore);
TrustManager[] tms = tmf.getTrustManagers();
final SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(kms, tms, new SecureRandom());
SSLContext.setDefault(sslContext);
HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE;
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
URL url = new URL("URL");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setConnectTimeout(100000);
con.setSSLSocketFactory(sslContext.getSocketFactory());
con.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(sb.toString());
output = sb.toString();
} catch (Exception e) {
e.printStackTrace();
output = e.getMessage();
}
return output;
}
Während für gleiche URL, ich xmlData von Verfahren zu stellen. Wie kann ich das tun? Was soll ich nach con.setRequestMethod("POST");
im Code ändern?
was ist passiert, als Sie versuchten? – user7294900
Ich frage, wie man Daten nach con.setRequestMethod ("POST") POST; Angenommen, ich habe meine Methode folgendermaßen bearbeitet: public String demoAPI (String xmlData). Wie kann ich diese xmlData an diese URL senden? –