从邮递员客户端发送字符串数组
Sending array of string from postman client
我正在使用 identity 2.0 网络 api。
我想为一个用户分配多个角色。
我正在使用 post 手动客户端与 Web api 进行通信。
在 api 中,我用来获取用户 ID 和用户角色的方法如下:
public async Task<IHttpActionResult> AddRoleToUser(string userid,[FromUri] string[] selectedRoles)
这里selectedRoles是一个数组。
来自 postman 客户端,我正在传递数组,如下所示:
我在 url 中传递用户 ID。
我是否以正确的格式从 postman 客户端传递角色数组?
对 api 的调用成功,但 selectedRoles 始终包含空值。
我尝试使用原始 json 如下所示,但它没有用
如果我可以将角色作为原始 json 传递,是否可以显示示例
第一个问题:您指定 selectedRoles
数组来自具有此属性的 URI (URL):[FromUri]
。您需要删除此属性,因为您是在请求 body 中发送它,而不是在 URL.
中发送
Web API 操作只能接收来自请求 body 的单个参数,以及来自 URL 的任意数量的参数。因此,您需要将 userid
参数作为查询字符串参数传递,例如 ?userid=123123
,以及 body 中的另一个参数。 (如果您使用默认路线)
您还需要在 header 中指定您在 body 中发送的信息的格式。所以你需要包括这个 header: Content-Type: application/json
,因为你在你的请求 body.
中包括了 JSON
最后,当您从 body 发送单个参数时,您可以这样发送:
['Admin', 'Employee']
如果您想在您的示例中使用该格式,您应该创建一个 class 作为您的操作中的参数,它看起来像这样:
public class RoleList
{
public string[] selectedRoles { get; set; }
}
你的操作应该包括这个作为参数:
public async Task<IHttpActionResult>
AddRoleToUser(string userid, RoleList roleList)
C# 中的方法代码:
public void Put([FromBody]string[] selectedRoles)
{
foreach (var role in selectedRoles)
{
}
}
在postman中调用方法
在标题选项卡中添加您的参数和 Content-type 参数值为 application/x-www-form-urlencoded
在 body 选项卡中 select raw 和 JSON(application/json)
然后在 body 框中添加您的数组,如下所示:
['Admin', 'Employee']
我正在使用 identity 2.0 网络 api。 我想为一个用户分配多个角色。 我正在使用 post 手动客户端与 Web api 进行通信。 在 api 中,我用来获取用户 ID 和用户角色的方法如下:
public async Task<IHttpActionResult> AddRoleToUser(string userid,[FromUri] string[] selectedRoles)
这里selectedRoles是一个数组。
来自 postman 客户端,我正在传递数组,如下所示:
我在 url 中传递用户 ID。 我是否以正确的格式从 postman 客户端传递角色数组? 对 api 的调用成功,但 selectedRoles 始终包含空值。 我尝试使用原始 json 如下所示,但它没有用
如果我可以将角色作为原始 json 传递,是否可以显示示例
第一个问题:您指定 selectedRoles
数组来自具有此属性的 URI (URL):[FromUri]
。您需要删除此属性,因为您是在请求 body 中发送它,而不是在 URL.
Web API 操作只能接收来自请求 body 的单个参数,以及来自 URL 的任意数量的参数。因此,您需要将 userid
参数作为查询字符串参数传递,例如 ?userid=123123
,以及 body 中的另一个参数。 (如果您使用默认路线)
您还需要在 header 中指定您在 body 中发送的信息的格式。所以你需要包括这个 header: Content-Type: application/json
,因为你在你的请求 body.
最后,当您从 body 发送单个参数时,您可以这样发送:
['Admin', 'Employee']
如果您想在您的示例中使用该格式,您应该创建一个 class 作为您的操作中的参数,它看起来像这样:
public class RoleList
{
public string[] selectedRoles { get; set; }
}
你的操作应该包括这个作为参数:
public async Task<IHttpActionResult>
AddRoleToUser(string userid, RoleList roleList)
C# 中的方法代码:
public void Put([FromBody]string[] selectedRoles)
{
foreach (var role in selectedRoles)
{
}
}
在postman中调用方法
在标题选项卡中添加您的参数和 Content-type 参数值为 application/x-www-form-urlencoded
在 body 选项卡中 select raw 和 JSON(application/json) 然后在 body 框中添加您的数组,如下所示: ['Admin', 'Employee']