Can someone help me get tls with hyper::client::conn

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    SimpleLogger::new().init().unwrap();
    let target_stream = TcpStream::connect("finance.yahoo.com:443").await?;

    let (mut request_sender, connection) = conn::handshake(target_stream).await?;

    // spawn a task to poll the connection and drive the HTTP state
    tokio::spawn(async move {
        if let Err(e) = connection.await {
            eprintln!("Error in connection: {}", e);
        }
    });

    let request = Request::builder()
        // We need to manually add the host header because SendRequest does not
        .header("Host", "finance.yahoo.com")
        .method("GET")
        .body(Body::empty())?;
    let response = request_sender.send_request(request).await?;
    assert!(response.status() == StatusCode::OK);

    Ok(())
}

Hi guys, how can I add tls to this code, I know I could use hyper::client, or hyper_tls::httpsconnector,
But I want to know more about low-level stuff.

Thank you very much for your help.

Best

I'm pretty sure you can just give the TcpStream to a tls library such as tokio-rustls or tokio-native-tls, which would give you a TlsStream. Then you can use it with conn::handshake normally.

1 Like

Hi Alice,

good to see you here. THank you very much for your help.

Best regards,

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.