|
|
|
@ -0,0 +1,74 @@
|
|
|
|
|
import org.apache.http.HttpEntity;
|
|
|
|
|
import org.apache.http.HttpResponse;
|
|
|
|
|
import org.apache.http.client.HttpClient;
|
|
|
|
|
import org.apache.http.client.methods.HttpPost;
|
|
|
|
|
import org.apache.http.entity.StringEntity;
|
|
|
|
|
import org.apache.http.impl.client.HttpClients;
|
|
|
|
|
import org.apache.http.ssl.SSLContexts;
|
|
|
|
|
import org.apache.http.util.EntityUtils;
|
|
|
|
|
import javax.net.ssl.SSLContext;
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileInputStream;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
import java.security.KeyStore;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class Http3 {
|
|
|
|
|
|
|
|
|
|
private static final String KEYSTOREPATH = "keystore.jks"; // or .p12
|
|
|
|
|
private static final String TRUSTSTOREPATH = "truststore.jks"; // or .p12
|
|
|
|
|
private static final String KEYSTOREPASS = "123123";
|
|
|
|
|
private static final String KEYPASS = "123123";
|
|
|
|
|
|
|
|
|
|
KeyStore readStore() throws Exception {
|
|
|
|
|
try (FileInputStream trustKeyStoreFile = new FileInputStream(new File(KEYSTOREPATH))) {
|
|
|
|
|
KeyStore keyStore = KeyStore.getInstance("JKS"); // or "PKCS12"
|
|
|
|
|
keyStore.load(trustKeyStoreFile, KEYSTOREPASS.toCharArray());
|
|
|
|
|
return keyStore;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
KeyStore readTrust() throws Exception {
|
|
|
|
|
try (FileInputStream trustStoreStream2 = new FileInputStream(new File(TRUSTSTOREPATH))) {
|
|
|
|
|
KeyStore trustStore = KeyStore.getInstance("JKS"); // or "PKCS12"
|
|
|
|
|
trustStore.load(trustStoreStream2,KEYSTOREPASS.toCharArray());
|
|
|
|
|
return trustStore;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void query() throws Exception {
|
|
|
|
|
|
|
|
|
|
System.out.println(System.getProperty("user.dir"));
|
|
|
|
|
System.out.println(KEYSTOREPATH);
|
|
|
|
|
|
|
|
|
|
SSLContext sslContext = SSLContexts.custom()
|
|
|
|
|
.loadTrustMaterial(readTrust(),null)
|
|
|
|
|
//.loadTrustMaterial(null, new TrustSelfSignedStrategy())
|
|
|
|
|
//.loadTrustMaterial(null, (x509CertChain, authType) -> true) //вариант принимающий всё
|
|
|
|
|
.loadKeyMaterial(readStore(), KEYPASS.toCharArray()) // use null as second param if you don't have a separate key password
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HttpClient httpClient = HttpClients.custom().setSSLContext(sslContext).build();
|
|
|
|
|
|
|
|
|
|
HttpPost query = new HttpPost("https://192.168.200.10/index.php?koko=1");
|
|
|
|
|
query.setHeader("р1","yes"); //заголовок
|
|
|
|
|
query.setEntity(new StringEntity("ratatatat")); //тело
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HttpResponse response = httpClient.execute(query);
|
|
|
|
|
HttpEntity entity = response.getEntity();
|
|
|
|
|
|
|
|
|
|
System.out.println("----------------------------------------");
|
|
|
|
|
System.out.println(response.getStatusLine());
|
|
|
|
|
String responseBody = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
|
|
|
|
System.out.println("Response body: " + responseBody);
|
|
|
|
|
EntityUtils.consume(entity);
|
|
|
|
|
}
|
|
|
|
|
}
|