1use std::time::Duration;
2
3use bevy::{log::LogPlugin, prelude::*, time::common_conditions::on_timer};
4use bevy_mod_reqwest::*;
5use serde::Serialize;
6
7#[derive(Serialize)]
9struct Post {
10 title: String,
11 body: String,
12 user_id: usize,
13}
14
15fn send_requests(mut client: BevyReqwest) {
16 let url = "https://jsonplaceholder.typicode.com/posts";
17 let body = Post {
18 title: "hello".into(),
19 body: "world".into(),
20 user_id: 1,
21 };
22 let req = client.post(url).json(&body).build().unwrap();
23 client
24 .send(req)
25 .on_response(|req: On<ReqwestResponseEvent>| {
26 let req = req.event();
27 let res = req.as_str();
28 bevy::log::info!("return data: {res:?}");
29 });
30}
31
32fn main() {
33 App::new()
34 .add_plugins(MinimalPlugins)
35 .add_plugins(LogPlugin::default())
36 .add_plugins(ReqwestPlugin::default())
37 .add_systems(
38 Update,
39 send_requests.run_if(on_timer(Duration::from_secs(2))),
40 )
41 .run();
42}