# bevy_ehttp
[](https://crates.io/crates/bevy_ehttp)
[](https://docs.rs/bevy_ehttp)
[](https://github.com/bevy_ehttp/bevy_ehttp#license)
A ehttp Bevy Plugin that works both on native and on WASM.
Simple request will invoke `OnResponseString(pub Result<Response, String>)` event once completed.
There is also option to call typed request that will allow to deserialize response to given type by using `RequestBundle<T>`. More details available in [typed.rs example](examples/typed.rs).
## Example
```rust
use bevy::{prelude::*, time::common_conditions::on_timer};
use bevy_ehttp::prelude::*;
fn main() {
App::new()
.add_plugins((MinimalPlugins, HttpPlugin))
.add_systems(
Update,
send_request.run_if(on_timer(std::time::Duration::from_secs(1))),
)
.add_observer(on_response)
.run();
}
fn send_request(mut commands: Commands) {
let req = ehttp::Request::get("https://api.ipify.org/eee?format=json");
commands.spawn(HttpRequest(req));
}
fn on_response(t: Trigger<OnResponseString>) {
match &**t {
Ok(response) => println!("[{:?}]: {:?}", t.url(), response.text()),
Err(e) => println!("response error: {:?}", e),
}
}
```
## Thanks
Big thanks to the creators of the Bevy Engine and to the [foxzool](https://github.com/foxzool) user for creating [bevy_http_client](https://github.com/foxzool/bevy_http_client) that this plugin is based on.
## License
`bevy_ehttp` is dual-licensed under MIT and Apache 2.0 at your option.
## Bevy compatibility table
0.16 | 0.5
0.15 | 0.4
0.14 | 0.3
0.13 | 0.2
0.12 | 0.1