更新:我刚刚在CloudWatch日志中注意到,内容类型以某种方式从应用程序/json变异为文本/普通。下面是WebHost字符串现在的样子:
这是电话工作时的样子:
[资讯]Microsoft.AspNetCore.主机。内部。WebHost:请求启动POSThttps://snip.execute-api.us-west-2.amazonaws.com/Stage/api/Clinician应用程序/json然而,Postman中的标头设置Content-Type:应用程序/json
那么,为什么内容类型会发生变化呢?
原帖开头:
我正在使用Visual Studio 2017“带测试的无服务器应用程序”蓝图开发一个API网关Lambda函数,这是一个。NET核心解决方案。我们使用Cognito用户池进行身份验证。我正在使用Postman测试我的第一个函数。我正在为Cognito用户池中的用户传递一个有效的ID令牌。该请求通过身份验证,但以415不支持的媒体类型响应。
在我开始传递ID令牌之前,我正在使用AWS_IAM authorizer。此时,主体(内容类型:application/json)将成功映射到POST参数。但是现在我正在使用Cognito用户池授权器,在调用POST时,我得到了415个不受支持的媒体类型。POST方法签名为:
[HttpPost]
public APIGatewayProxyResponse Post([FromBody]Clinician user)
我在正文中发送的示例数据是:
{
"Id": "",
"Username": "6punk",
"Title": "Punker",
"FirstName": "Six",
"MIddleName": "",
"LastName": "Punk",
"Suffix": "",
"PreferredFirstName": "",
"PreferredLastName": "",
"Email": "bogus@email.com",
"Phone": "+18015551206",
"UserSub": "",
"ClinicianTypeId": "1",
"EhrId": ""
}
如前所述,当作为IAM用户进行身份验证或通过API网关控制台中的“方法测试”窗格进行测试时,JSON完美地映射到Clinician类。
我启用了CORS。对于ANY方法,我将集成请求类型设置为LAMBDA_PROXY。
当使用Cognito用户的ID令牌从Postman测试我的POST方法时,您知道是什么导致415不支持的媒体类型吗?
事实证明,这是《邮差》中的一个错误。尽管我已将内容类型指定为application/json,但它仍将内容类型传递为text/plain。我删除了内容类型标题,然后重新创建了它,一切都开始工作了。我已经请邮递员起床好几天了。我不知道它为什么开始传递文本/纯文本。我所知道的是,当我删除并重新创建内容类型头application/json时,事情才重新开始工作。
我使用jax-rs和jersey创建了一个REST webservice,它应该在POST请求上使用JSON。我的web服务类如下所示: 我的歌曲课: 我有点用RESTClient,嗯,rest Client...以下是我发送的内容的截图: 当我发送它时,我得到415不受支持的媒体类型错误。有人知道为什么吗?
如何使用C#在SQL Server数据库上执行CRUD操作? 例如,假设有一个带有以下列的DB表: 我希望发布一个新员工的信息到该数据库。什么是实现这一目标的有效方法? 我当前的: 下面是模型: 当我用以下输入测试我的应用编程接口时: 我得到这个错误: HTTP/1.1 415不支持的媒体类型 数据库中没有插入任何内容。 如能提供任何指导,将不胜感激。 : 根据请求生成的原始错误消息: HTTP/
我试图张贴一个文件从邮递员到endpoint我已经创建.但它给我这个错误。我不会在邮递员中传递标题内容类型 415不支持的媒体类型
JS代码如下所示。 与URL映射的Spring控制器中的方法如下所示。 服务器按照问题的意思进行响应, 整个文件如下所示。 当我删除一个方法参数,并简单地使用来接受请求参数时,它就起作用了。
问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道
我已经创建了一个示例web服务来进行post调用。 我使用的是Jersey JAX-RS和Maven。