我正在使用Postman向web API发送字符串数组。web API方法如下所示:
[HttpPost]
public async Task<IEnumerable<DocumentDTO>> GetDocuments([FromBody]IEnumerable<string> documentNames)
{
return await _service.GetDocuments(documentNames);
}
Fiddler显示请求的内容类型为Multipart/form-data;
但是我得到一个错误的响应:
{"Message":"此资源不支持请求实体的媒体类型'Multipart/form-data'。","ExceptionMessage":"没有MediaTypeForall可用于从媒体类型'Multipart/form-data'的内容中读取类型'IENumable1'的对象。","ExceptionType":“系统。网。http://http.
1格式化程序,IFormatterLogger格式化记录器,取消令牌取消令牌)\r\n在System.网页。http://http.模型绑定。格式参数绑定。ReadContentAsync(HttpquiestMessage请求,类型,IENumable'1格式化程序,IFormatterLogger格式化记录器,取消令牌取消令牌)"}
"StackTrace":"at System.网。http://http.HttpContent扩展。ReadAsAsync[T](HttpContent内容,类型,IENumable
我已尝试将键设置为documentNames
,documentNames[]
,documentNames[0]
。
我已尝试将正文选择为x-www-form-urlencoded
。当我这样做时,API接收到一个空集合。
我已尝试选择一个实体作为raw
。当我这样做时,API接收null作为参数。
问题
x-www-form-urlencoded
发送字符串数组李>
将其作为JSON数组传递,并选择如下所示的raw
选项
用于API方法签名
public void Post([FromBody] IEnumerable<string> value)
{
//some processing
}
如果要通过参数初始化数组,可以这样做。