我想通过GET调用以下DTO:
[Route("/documents")]
public class Documents : IReturn<DocumentsResult>
{
public string[] IDs { get; set; }
}
一个简单的Service
:
public DocumentsResult Get(Documents doc)
{
//implementation not relevant
}
当尝试使用JsonServiceClient.Get()
方法调用许多ID时,我得到BadRequest,因为查询字符串太长。
如何确保从FormData绑定IDs属性?
答案 0 :(得分:2)
GET 请求只能使用QueryString,因此没有FormData。您遇到的限制可能是queryStrings上的IIS / ASP.NET限制(ServiceStack中没有明确的使用限制)。因此,您可以尝试使用以下命令增加Web.config中GET请求的限制:
<system.web>
<httpRuntime maxUrlLength="10999" maxQueryStringLength="2097151" />
...
</system.web>
否则,您的解决方案是使用 POST ,以便通过请求正文发送请求,或使用 GET 将请求批处理为更易于管理的块超过default limit of 2048 chars。