我有一个像这样的动作方法
[ResponseType(typeof(DiaryDeviceDTO))]
[HttpPost]
[Route("api/Device/Register")]
public async Task<IHttpActionResult> Register(DeviceRegistration deviceRegistration)
{
if (deviceRegistration == null)
{
return BadRequest("Request body is null");
}
DiaryDevice device = await _deviceBl.Register(deviceRegistration.RegistrationCode);
var deviceDto = Mapper.Map<DiaryDevice, DiaryDeviceDTO>(device);
return Ok(deviceDto);
}
当我向Post Man请求body时,我将deviceRegistration
对象视为null。我的请求正文如下 -
{
"ApiKey" : "apikey",
"RegistrationCode" : "123",
"ImeiNo" : "12345"
}
我已将ContentType
设为application/json
然后我尝试阅读下面的请求内容 -
string body = await Request.Content.ReadAsStringAsync();
我在这里得到body = ""
但是当我运行我的单元测试时,我得到了deviceRegistration
。那么我的代码有什么问题。为什么我的代码仅适用于单元测试。我正在使用Web Api 2.2
很抱歉提出这个问题。其实这是我的错。我不小心在Application_BeginRequest()方法中读取了请求体以进行日志记录。我将这些日志代码移到Application_EndRequest()方法中,一切都变好了。
答案 0 :(得分:3)
鉴于您已展示的内容,这应该适用于 FileInfo[] excelFiles = di.GetFiles("*.xlsx");
if (excelFiles.Length > 0)
{
Dts.Variables["ExcelFilesList"].Value =
excelFiles.Select(file => file.FullName).ToList();
}
api/device/register
注意[FromBody]属性。