Я пытаюсь сделать почтовый запрос, используя reqwest ящик из ржавчины. Вот фрагмент кода машины go .toml
[dependencies]
tokio = { version = "0.2", features = ["full"] }
reqwest = { version = "0.10", features = ["json"] }
Вот фрагмент кода, из которого я делаю запрос к простому серверу.
use reqwest::{Response, StatusCode};
use serde_json::{json, Value};
#[tokio::main]
async fn main() -> Result< (), reqwest::Error> {
let map1 = json!({
"abc":"abc",
"efg":"efg"
});
let body: Value = reqwest::Client::new()
.post("http://localhost:4000/hello")
.json(&map1)
.send()
.await?
.json()
.await?;
println!("Data is : {:?}", body);
Ok(())
}
Элемент кода написано с использованием простого серверного ящика, с которого я обслуживаю этот запрос ниже:
use simple_server::{Server, StatusCode};
fn main() {
let server = Server::new(|req, mut response| {
println!(
"Request received {} {} {:?}",
req.method(),
req.uri(),
&req.body()
);
match (req.method().as_str(), req.uri().path()) {
("GET", "/") => Ok(response.body(format!("Get request").into_bytes())?),
("POST", "/hello") => Ok(response.body(format!("Post request").into_bytes())?),
(_, _) => {
response.status(StatusCode::NOT_FOUND);
Ok(response.body(String::from("Not Found").into_bytes())?)
}
}
});
server.listen("127.0.0.1", "4000");
}
Вывод, который я получаю:
Request received POST /hello []
Желаемый вывод - векторный массив байтов, но я я получаю пустой векторный массив.
Решения, которые я уже пробовал:
- Отправка запроса с помощью Postman на тот же сервер, и он работает нормально.
- Отправка запроса на отправку с использованием того же кода reqwest на любой другой сервер, такой как hyper, actix и т. Д. c, и он работает нормально.
- Отправка простого тела в виде тела запроса на отправку (нет JSON). Но возникает та же проблема.
Так что я думаю, что проблема должна быть с этим простым ящиком сервера. Каждое достойное предложение будет поощряться.