前台的请求都是 post
参数都是以 a=1&b=2&c=3 这种方式传入的。
因为我提供的api的接入方习惯性以淘宝为参照物,如果我这样提供api,他们接入起来会很方便,直接用淘宝开放平台的sdk来修改一下request 类就可以了。
所以这种我后端该用什么api框架来做?
core webapi 把参数设置特性:FromForm。看看是不是你要的效果。
非常感谢,参数前面加这个特性,的确可以。我还以为没法那么搞了。之前.net 4.0的时候,不需要加这个特性,直接自己会映射,现在不会映射了,我以为不可以了。。。。。让你见笑了。。。
能再回答一下另外一个问题吗?
题中有描述。如下
还有,如果用ocelot作为网关中心,来转发服务去下游,网关中心统一鉴权后,还需要把 jwt 下发给下游吗?那样子下游又需要去鉴权,感觉不想这么搞,我想直接下游裸奔,设定仅允许内网某个些IP访问这个项目,如果这样的话,网关不转发JWT过去,一般网关鉴权后的用户信息放在哪里呢?比如把鉴权后的用户信息放在header中吗?一般情况下JWT要不要转发给下游服务的?
先谢谢大神们的回复。
@LoveCoder: 这问题好高深啊,我一下子回答不上,哈哈,不好意思啊。建议再开一个贴问吧,园子里有很多高人的
@会长:
兄弟,我按这个方法写可以,但是,有办法统一让某个控制器的入参全部是 [FromForm] 的特性吗?一个个写比较麻烦
@LoveCoder: 没研究过呀,建议再开个帖子问问博客园的高人
asp.net core web api 轻松支持,这就是最简单的表单提交啊
不是吧。。。。post请求,.net core 3.1能支持这种方式提交吗?
我刚刚明明测试了,.net core 3.1 好像不支持这种方式提交表单啊。后端怎么写?? httppost 不是get,后端代码咋写? 我后端是这样写的。
postman 发请求,你看下图
难道是我姿势不对吗。。。。。
大哥,还在吗?确定.net core可以支持吗?是我姿势不对还是,麻烦帮忙看下我的2个截图。一个是我后端的写法,一个是我postman发请求的操作。谢谢
@LoveCoder: Action 参数之前要加 [FromBody]
@LoveCoder: 建议提供重现这个问题的示例代码
@dudu: 是加 [FromForm] 这个特性就可以。非常感谢。
能看下第二个问题吗?描述中有,问题如下:
还有,如果用ocelot作为网关中心,来转发服务去下游,网关中心统一鉴权后,还需要把 jwt 下发给下游吗?那样子下游又需要去鉴权,感觉不想这么搞,我想直接下游裸奔,设定仅允许内网某个些IP访问这个项目,如果这样的话,网关不转发JWT过去,一般网关鉴权后的用户信息放在哪里呢?比如把鉴权后的用户信息放在header中吗?一般情况下JWT要不要转发给下游服务的?
先谢谢大神们的回复。
@LoveCoder: 我对这个问题没有经验
@LoveCoder: ocelot 支持将认证信息转化成Head,带到下游请求。配置如下:
"AddHeadersToRequest": {
"name": "Claims[name] > value",
"phone": "Claims[phone] > value",
//"introduce": "Claims[introduce] > value",
"userId": "Claims[sub] > value",
"client_id": "Claims[client_id] > value"
},
"AddClaimsToRequest": {
"name": "Claims[name] > value",
"phone": "Claims[phone] > value",
//"introduce": "Claims[introduce] > value",
"userId": "Claims[sub] > value",
"client_id": "Claims[client_id] > value"
}
我的代码和你的差不多 我为什么可以??
这哪是差不多啊。。。。
接受参数的写在 Index() 里面试试?比如 Index(string userId,string username)