post/
post.rs

1use std::time::Duration;
2
3use bevy::{log::LogPlugin, prelude::*, time::common_conditions::on_timer};
4use bevy_mod_reqwest::*;
5use serde::Serialize;
6
7// example towards jsonplaceholder.typicod.com/posts
8#[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}