4个版本 (2个重大更新)

0.3.0 2024年7月21日
0.2.1 2024年2月18日
0.2.0 2024年2月17日
0.1.0 2024年2月12日

#809 in 游戏开发

Download history 4/week @ 2024-06-03 78/week @ 2024-07-15 46/week @ 2024-07-22 8/week @ 2024-07-29

每月132次下载

MIT/Apache

37KB
288

bevy_ehttp

Crates.io Documentation MIT/Apache 2.0

一个同时适用于原生和WASM的ehttp Bevy插件。

简单请求会在完成后触发一次 RequestCompleted(pub Result<Response, String>) 事件。

还可以调用类型化请求,这将允许通过使用 RequestBundle<T> 将响应反序列化为指定的类型。更多详情请查看 typed.rs 示例

示例

use bevy::{prelude::*, time::common_conditions::on_timer};
use bevy_ehttp::prelude::*;

fn main() {
    App::new()
        .add_plugins((MinimalPlugins, HttpPlugin))
        .add_systems(Update, handle_response)
        .add_systems(
            Update,
            send_request.run_if(on_timer(std::time::Duration::from_secs(1))),
        )
        .run()
}

fn send_request(mut commands: Commands) {
    let req = ehttp::Request::get("https://api.ipify.org?format=json");
    commands.spawn(HttpRequest(req));
}

fn handle_response(mut requests: EventReader<RequestCompleted>) {
    for request in &mut requests.read() {
        match &**request {
            Ok(response) => println!("response: {:?}", response.text()),
            Err(e) => println!("response error: {:?}", e),
        }
    }
}

感谢

非常感谢Bevy引擎的创建者以及foxzool用户创建bevy_http_client,这个插件就是基于它开发的。

许可证

bevy_ehttp 可以选择在MIT和Apache 2.0下双许可。

Bevy兼容性表

Bevy版本 框架版本
0.14 0.3
0.13 0.2
0.12 0.1

依赖

~34–71MB
~1M SLoC