请求 DTO 未填充包含 "multipart/form-data" 的 PATCH 请求
Request DTO not getting populated with PATCH request containing "multipart/form-data"
我有以下 patch
请求:
curl --location --request PATCH 'http://localhost:8888/image' \
--form 'Width=1500' \
--form 'Height=1000' \
--form 'ID=5f3c03457118797a3a7a6f8c' \
--form 'File=@/D:/IMG_20190901_144155.jpg'
我的请求 DTO 如下所示:
[Route("/image")]
public class Request : IReturnVoid
{
public string ID { get; set; }
public int Width { get; set; }
public int Height { get; set; }
}
服务方法如下所示:
public class ImageService : Service
{
public async Task Patch(Request req)
{
var id = req.ID;
var height = req.Height;
var width = req.Width;
await Task.Delay(100);
}
}
我遇到的问题是服务堆栈未填充请求 DTO。
如果我在调试 Servicestack.Web.IRequest.FormData
属性 时放置断点并检查,它会显示以下异常:
'((ServiceStack.Host.NetCore.NetCoreRequest)Request).FormData' threw an exception of type 'System.IO.InvalidDataException'
但是,如果我只是将其更改为 POST
请求而不是 PATCH
一切正常。
这是 servicestack 中的错误还是我在这里遗漏了一些重要的东西?
如果你需要一个复现项目,你可以找到它here
这是 servicestack 中的一个错误,现在已通过 this 提交解决。
我有以下 patch
请求:
curl --location --request PATCH 'http://localhost:8888/image' \
--form 'Width=1500' \
--form 'Height=1000' \
--form 'ID=5f3c03457118797a3a7a6f8c' \
--form 'File=@/D:/IMG_20190901_144155.jpg'
我的请求 DTO 如下所示:
[Route("/image")]
public class Request : IReturnVoid
{
public string ID { get; set; }
public int Width { get; set; }
public int Height { get; set; }
}
服务方法如下所示:
public class ImageService : Service
{
public async Task Patch(Request req)
{
var id = req.ID;
var height = req.Height;
var width = req.Width;
await Task.Delay(100);
}
}
我遇到的问题是服务堆栈未填充请求 DTO。
如果我在调试 Servicestack.Web.IRequest.FormData
属性 时放置断点并检查,它会显示以下异常:
'((ServiceStack.Host.NetCore.NetCoreRequest)Request).FormData' threw an exception of type 'System.IO.InvalidDataException'
但是,如果我只是将其更改为 POST
请求而不是 PATCH
一切正常。
这是 servicestack 中的错误还是我在这里遗漏了一些重要的东西?
如果你需要一个复现项目,你可以找到它here
这是 servicestack 中的一个错误,现在已通过 this 提交解决。