@alexkozlov1982

Есть ли аналог curl для Rust?

Всем привет.
Получилось так что появилась необходимость сделать приложение для web не на PHP. Выбор упал на Rust и фреймворк Rocket. Все шло хорошо до момента, когда мне понадобилось "дернуть" url (например, domain.test/api?a=qwerty&b=asdfg) и получить ответ в json.

Как это можно реализовать в Rust?

Возможно ответ на поверхности и я его невижу (только неделя как я узнал вообще про Rust).
  • Вопрос задан
  • 967 просмотров
Решения вопроса 2
Tyranron
@Tyranron
Если пишете в web на Rust, то маст-хэв эту ссылку:
www.arewewebyet.org
Там расписано большинство аспектов касающихся web и текущее состояние экосистемы Rust по ним.

Касательно Вашего вопроса, то это к HTTP Clients:
www.arewewebyet.org/topics/clients
Пишет "getting there, stable but still maturing", значит все достаточно неплохо.
Ответ написан
Комментировать
ищите нужный cargo

вот вам биндинг к libcurl
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka Куратор тега Rust
Оставлю ответ для будущих поколений.
Есть вполне хороший пакет - reqwest.
https://github.com/seanmonstar/reqwest

Код будет такой:
(сначала надо добавить зависимость)
[dependencies]
reqwest = { version = "0.11", features = ["blocking", "json"] } #blocking - только для примера, чтобы не нагружать await-ами. json - чтобы добавить возможность десериализации ответа при помощи serde-json


use std::collections::HashMap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::blocking::get("https://httpbin.org/ip")?
        .json::<HashMap<String, String>>()?; // Тут нужно подставлять тот тип, который реализует трейт Deserialize
    println!("{:#?}", resp);
    Ok(())
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы