Códigos de estado y fallas en Rust
Un 404 es una petición exitosa con un estado no exitoso — maneja ambos.
#[tokio::main]
async fn main() {
match reqwest::get("https://typestar.io/missing").await {
Ok(response) => {
let code = response.status();
println!("{} success={}", code, code.is_success());
match response.error_for_status() {
Ok(_) => println!("body is usable"),
Err(e) => println!("bad status: {e}"),
}
}
Err(e) => println!(
"transport failed: timeout={} connect={}",
e.is_timeout(),
e.is_connect()
),
}
}
Cómo funciona
status()reporta lo que dijo el servidor.error_for_statusconvierte 4xx y 5xx en unErr.is_timeouteis_connectclasifican las fallas de transporte.
Palabras clave y builtins usados aquí
ErrOkasyncawaitfnletmatch
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 407
- Tokens
- 114
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 62 segundos.
Paso 4 de 5 en Peticiones con reqwest; paso 10 de 12 en Herramientas CLI y clientes HTTP.