#![allow(unused_imports, deprecated, warnings)]
use std::{collections::HashMap, convert::TryFrom, fs, io, io::Read};
use ntex::client::{Client, Connector};
use ntex::connect::{self, Connect};
use ntex::http::Uri;
use ntex::service::{Service, apply_fn};
use ntex::{SharedCfg, time::Millis, util::ByteString};
use tls_openssl::pkcs12::Pkcs12;
use tls_openssl::ssl::{self, SslMethod, SslVerifyMode};
const SF_HOST: &str = "nikki-20260513-fabric-1.westus3.cloudapp.azure.com";
const SF_CERT: &str = "./examples/sf.pfx";
#[ntex::main]
async fn main() -> io::Result<()> {
unsafe {
std::env::set_var("RUST_LOG", "trace");
}
env_logger::init();
let mut cert_vec = Vec::new();
let mut cert_file = fs::File::open(SF_CERT).unwrap();
cert_file.read_to_end(&mut cert_vec).unwrap();
let identity = Pkcs12::from_der(&cert_vec)
.unwrap_or_else(|_| panic!("Failed to parse TLS certificate"))
.parse("")
.unwrap();
let mut builder = ssl::SslConnector::builder(SslMethod::tls()).unwrap();
builder.set_private_key(&identity.pkey).unwrap();
builder.set_certificate(&identity.cert).unwrap();
let connector = connect::openssl::SslConnector::new(builder.build());
let client = Client::builder()
.connector::<Uri>(Connector::new().secure_connector(connector))
.build(SharedCfg::new("SF"))
.await
.expect("Cannot create EG-SF Http Client");
let url1 = "https://nikki-20260513-fabric-1.westus3.cloudapp.azure.com:19080/Services/microsoft.azure.mqttbroker.counter~microsoft.azure.mqttbroker.counter.service/$/GetPartitions?api-version=6.4";
let url2 = "https://nikki-20260513-fabric-1.westus3.cloudapp.azure.com:19080/Services/microsoft.azure.mqttbroker.session~microsoft.azure.mqttbroker.session.service/$/GetPartitions?api-version=6.4";
let url31 = "https://nikki-20260513-fabric-1.westus3.cloudapp.azure.com:19080/Services/elastic_log_sf_type~ElasticLogService/$/GetPartitions?api-version=6.4";
let url4 = "https://nikki-20260513-fabric-1.westus3.cloudapp.azure.com:19080/Partitions/03db57af-398d-453e-880f-4929822c2703/$/GetReplicas?api-version=6.4";
let url5 = "https://nikki-20260513-fabric-1.westus3.cloudapp.azure.com:19080/Partitions/749160c3-89c8-4fa4-a8e1-9206004a91b3/$/GetReplicas?api-version=6.4";
let url6 = "https://nikki-20260513-fabric-1.westus3.cloudapp.azure.com:19080/Partitions/01630a27-b506-49ef-a075-a6de239fac0e/$/GetReplicas?api-version=6.4";
let url7 = "https://nikki-20260513-fabric-1.westus3.cloudapp.azure.com:19080/Applications/microsoft.azure.mqttbroker.configstore/$/GetServices?api-version=6.4";
let res = client.get(url7).send().await.unwrap();
println!("{res:?}");
let body = ByteString::try_from(res.body().await.unwrap()).unwrap();
println!("{body}");
Ok(())
}