gpt4 book ai didi

rust - Json 是如何工作的(表单数据没有表单内容类型)

转载 作者:行者123 更新时间:2023-11-29 08:07:16 26 4
gpt4 key购买 nike

我对 Rust 完全陌生。我正在尝试使用 rocket 创建一个非常简单的 API。我有以下行不通的路线,我不知道为什么。

#![feature(proc_macro_hygiene, decl_macro)]

#[macro_use] extern crate rocket;

use rocket_contrib::json::Json;
use serde::{Serialize, Deserialize};
use serde_json::Result as JsonResult;

#[derive(Serialize, Deserialize)]
struct Article {
id: usize,
title: String,
body: String,
}

#[post("/new", format = "application/json", data = "<article>")]
fn create_article (article: Json<Article>) -> JsonResult<()> {
println!("Article is: id:{}, title:{}, body:{}", article.id, article.title, article.body);
Ok(())
}

fn main() {
rocket::ignite()
.mount("/article", routes![create_article])
.launch();
}

当我发送请求时,我有以下内容:

POST /article/new?id=1&title=titre&body=corps application/json:
=> Matched: POST /article/new (create_article)
=> Warning: Form data does not have form content type.
=> Outcome: Forward
=> Error: No matching routes for POST /article/new?id=1&title=titre&body=corps application/json.
=> Warning: Responding with 404 Not Found catcher.
=> Response succeeded.

有人可以帮助我吗?

最佳答案

您通过在 URL 中提供参数来请求 POST 端点,如 GET 端点。使用 curl 尝试以下操作:

curl -d '{"id": 1, "title": "titre", "body": "corps"}' -H "Content-Type: application/json" -X POST http://localhost:8000/article/new

关于rust - Json<T> 是如何工作的(表单数据没有表单内容类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54196607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com