Crate bevy_http_client
source ·Expand description
§bevy_http_client
A simple HTTP client Bevy Plugin for both native and WASM.
§Example
use bevy::{prelude::*, time::common_conditions::on_timer};
use bevy_http_client::prelude::*;
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize, Default)]
pub struct IpInfo {
pub ip: String,
}
fn main() {
let mut app = App::new();
app.add_plugins((MinimalPlugins, HttpClientPlugin))
.add_systems(Update, handle_response)
.add_systems(
Update,
send_request.run_if(on_timer(std::time::Duration::from_secs(1))),
);
app.register_request_type::<IpInfo>();
app.run();
}
fn send_request(mut ev_request: EventWriter<TypedRequest<IpInfo>>) {
ev_request.send(
HttpClient::new()
.get("https://api.ipify.org?format=json")
.with_type::<IpInfo>(),
);
}
fn handle_response(mut ev_response: EventReader<TypedResponse<IpInfo>>) {
for response in ev_response.read() {
println!("ip: {}", response.ip);
}
}
§Supported Versions
bevy | bevy_http_client |
---|---|
0.14 | 0.6 |
0.13 | 0.4, 0,5 |
0.12 | 0.3 |
0.11 | 0.1 |
§License
Dual-licensed under either:
at your option. This means that when using this crate in your game, you may choose which license to use.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Modules§
Structs§
- builder for ehttp request
- Plugin that provides support for send http request and handle response.
- The setting of http client. can set the max concurrent request.
- wrap for ehttp response
- wrap for ehttp error
- task for ehttp response result