带有属性路由的 PUT 请求 - 错误 415

问题描述

我收到来自客户端的 PUT 请求,如下所示:

PUT /calendars/johndoe/home/132456762153245.ics HTTP/1.1
Content-Type: text/calendar; charset=utf-8

我有一个带有属性路由和方法的控制器类设置,如下所示:

[HttpPut]
[Consumes("text/calendar")
[Route("calendars/{userName:alpha}/{calendarName:alpha}/{icsFile}")]
public async Task<ActionResult<string>> Put([Fromroute] string userName,[Fromroute] string calendarName,[FromBody] string icsFile)

        {...

我尝试了不同的路由属性一个包罗万象的参数,但它不适用于整个 url 路径。

我收到错误 415 响应 - 媒体类型不受支持

感谢任何建议。

解决方法

只需更改您的路由属性

[Route("calendars/{userName}/{calendarName}/{icsFile}")]
public async Task<ActionResult<string>> Put( string userName,string calendarName,string icsFile)
{
....
}

恕我直言,最好删除 [HttpPut] 和 [Consumes("text/calendar")]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...