我敢肯定有人有同样的问题,但我没有找到任何东西。我发送 post 请求来获取文件,我得到这个模型作为响应:
public class ResponseWithFile
{
public bool IsSuccessful { get; set; }
public List<int> Errors { get; set; }
public IFormFile File { get; set; }
}
我从控制器得到这个响应:
[Route("get")]
[HttpPost]
public async Task<IActionResult> GetFile([FromBody]GetFileDto request)
{
var result = _fileService.GetFile(request.Id, request.ContentType);
if (result.IsSuccessful)
return Ok(result);
return BadRequest(result);
}
响应是正确的,我可以将其读入字符串,但是当我尝试将其反序列化为响应对象时出现错误:
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
string respString = string.Empty;
using (var sr = new StreamReader(resp.GetResponseStream()))
{
respString = sr.ReadToEnd();
}
var serResp = (ResponseWithFile)JsonConvert.DeserializeObject(respString);//error here
InvalidCastException:无法将“Newtonsoft.Json.Linq.JObject”类型的对象转换为“ServiceModels.ResponseWithFile”类型
我确定这是因为 IFormFile 对象。我究竟做错了什么?