使用邮递员将字符串数组发送到web api

时间:2015-12-04 21:41:13

标签: c# asp.net-web-api postman

这是我的邮递员屏幕截图,我试图向网络API呼叫发出请求。

chrome postman get request

我也尝试使用[]进行调用,每个参数都没有数字,这也不起作用。在这两种情况下,字符串的文件名数组最终都为空。当我用样本替换实际的api调用时,忽略屏幕底部的错误。当我在断点处找到正确的api调用时,我看到了null值。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

鉴于你的行动:

public async Task<IHttpActionResult> Test(string[] filenames) {
  // ...
}

您需要在[FromUri]参数中添加string[] filenames属性。原因记录为here

  

默认情况下,Web API使用以下规则绑定参数:

     
      
  • 如果参数是“简单”类型,Web API会尝试从URI中获取值。简单类型包括.NET基元类型(int,bool,double等),以及TimeSpan,DateTime,Guid,decimal和string,以及具有可以从字符串转换的类型转换器的任何类型。 (稍后将详细介绍类型转换器。)

  •   
  • 对于复杂类型,Web API尝试使用媒体类型格式化程序从邮件正文中读取值。

  •   

数组被认为是一种复杂类型。 [FromUri]属性将覆盖默认行为,并指示Web API尝试从URI绑定此参数。