녹을 가르치려고합니다. 나는 rust-http을 알고 있지만 내 자신의 http 클라이언트를 만들고 싶습니다. GNU Linux 64 비트 용으로 현재 야간 빌드를 사용하고 있습니다.std를 사용하여 녹에서 HTTP 요청하기
use std::io::net::ip::SocketAddr;
use std::io::net::tcp::TcpStream;
use std::io::net::addrinfo::get_host_addresses;
use std::io::net::ip::IpAddr;
use std::io::stdio::println;
fn main() {
// HTTP endpoint
let host = ~"www.telize.com";
let path = ~"/geoip";
// Attempt to convert host to IP address
let ip_lookup = get_host_addresses(host).unwrap();
// Open socket connection
let addr = SocketAddr { ip: ip_lookup[0].clone(), port: port.clone() };
let mut socket = TcpStream::connect_timeout(addr, 200u64).unwrap();
// Format HTTP request
let mut header = format!("GET {} HTTP/1.0\r\nHost: {}\r\n", path.clone(), host.clone());
println(header);
socket.write_str(header);
// Make request and return response as string
let resp = socket.read_to_str().unwrap();
println(resp);
}
이 컴파일 :
여기에 내 현재 코드입니다. 그러나 코드를 실행하면 소켓을 통해 HTTP 요청이 표시되지만 터미널에 멈추게됩니다. 또한 응답이 없습니다. 브라우저에서이 URL (http://www.telize.com/geoip)을 테스트하면 JSON 응답이 반환됩니다. Rust 표준 라이브러리를 사용하여이 응답 (또는 응답)을 얻으려면 어떻게해야합니까? 감사!!
코드는 지금 작동합니까? 최신 버전의 std를 사용하여 스 니펫으로 이동하는 것은 깔끔합니다. – speg