首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Json<T>的工作原理(表单数据没有表单内容类型)

Json<T>的工作原理(表单数据没有表单内容类型)
EN

Stack Overflow用户
提问于 2019-01-15 18:04:39
回答 1查看 432关注 0票数 3

我完全是个生锈新手。我正在尝试用rocket创建一个非常简单的API。我有一条不起作用的路线,但我不知道为什么。

代码语言:javascript
运行
复制
#![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();
}

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

代码语言:javascript
运行
复制
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.

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-15 18:46:05

通过在URL中提供参数,您正在请求一个类似于GET端点的POST端点。尝试使用curl执行以下操作

代码语言:javascript
运行
复制
curl -d '{"id": 1, "title": "titre", "body": "corps"}' -H "Content-Type: application/json" -X POST http://localhost:8000/article/new
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54196607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档