Search

네트워크 요청하기

use std::io::prelude::*; use std::net::TcpStream; fn main() -> std::io::Result<()> { let mut stream = TcpStream::connect("www.example.com:80")?; let request = "GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n"; stream.write(request.as_bytes())?; let mut response = String::new(); stream.read_to_string(&mut response)?; println!("{}", response); Ok(()) }
Rust
복사
위 코드에서는 std::net::TcpStream::connect 함수를 사용하여 "www.example.com" 호스트의 80번 포트에 연결합니다. 이 함수도 Result<TcpStream, std::io::Error> 타입의 결과값을 반환합니다. ? 연산자를 사용하여 에러를 처리합니다.
그 다음, HTTP 요청 메시지를 작성하고 TcpStream::write 함수를 사용하여 서버에 요청을 보냅니다.
응답을 받기 위해서는 String 타입의 response 변수를 선언한 후, TcpStream::read_to_string 함수를 사용하여 응답을 읽어옵니다. 이 함수는 응답 메시지를 response 변수에 저장하고, Result<usize, std::io::Error> 타입의 결과값을 반환합니다.
마지막으로, println 함수를 사용하여 응답을 콘솔에 출력합니다.
이와 같이 Rust에서 네트워크 요청을 보내는 방법은 std::net 모듈의 함수를 사용하여 구현됩니다. 에러 처리도 Rust의 Result 타입과 ? 연산자를 사용하여 처리할 수 있습니다.

컬렉션 찾아보기

시리즈