ASP.NET(网页)=>;ASP.NET核心3.1 WebAPI
我正试图用我的新Core 3.1 API连接我的旧系统,但旧web应用程序生成的有效负载在我的API中不起作用,因为所有值都为空,但如果我在postman中测试,一切正常,这就是postman的有效负载:ASP.NET(网页)=>;ASP.NET核心3.1 WebAPI,asp.net,.net,asp.net-core,asp.net-core-3.1,legacy,Asp.net,.net,Asp.net Core,Asp.net Core 3.1,Legacy,我正试图用我的新Core 3.1 API连接我的旧系统,但旧web应用程序生成的有效负载在我的API中不起作用,因为所有值都为空,但如果我在postman中测试,一切正常,这就是postman的有效负载: {"{"UserId":0,"UserGroup":"something","AccessToken":"","CreatedBy":"something
{"{"UserId":0,"UserGroup":"something","AccessToken":"","CreatedBy":"something","From":"2020/01/01","To":"2020/07/10","TokenName":"something"}
}
这是来自传统web应用程序:
{"payload":{"UserId":0,"UserGroup":"soemthing","AccessToken":"","CreatedBy":"something","From":"2020/01/01","To":"2020/07/10","TokenName":"something"}}
正如您所注意到的,邮递员有效负载不包括“有效负载”,而legacy则包括,但有趣的是,legacy应用程序支持这一点,这意味着我可以按原样发送有效负载,解析器将完成它的工作。
那么,这里可能发生的事情有什么线索吗?从您提供的信息来看,遗留api似乎将生成一个json对象,其属性名为
payload
{
"payload" : { /* the object contains UserId, UserGroup, etc */ }
}
但是,您的.NET Core API接受具有以下结构的json对象:
{
userId: 0,
UserGroup: "some group",
/* other properties... */
}
因此,您可能需要在.NET Core API中定义一个名为有效负载的绑定模型:
公共类LegacyAppBindingModel
{
公共PayloadBindingModel有效负载{get;set;}
公共类PayloadBindingModel
{
public int UserId{get;set;}
/*其他属性,即用户组、AccessToken等*/
}
}
请提供一个