我正在尝试将请求发布到路线,但是我的参数之一被删除了。
我一直在尝试通过多种方式发送这样的请求,但是我似乎无法完全确定或了解正在发生的事情。作为参考,这是我发送的url编码内容:
private FormUrlEncodedContent GeneratePaymentConent(Claim[] claims, bool areChagesSigned, decimal? allowableAmount)
{
var content = new Dictionary<string, string>
{
{"claims", JsonConvert.SerializeObject(claims)},
{ "isReversal", JsonConvert.SerializeObject(areChagesSigned)},
{ "allowableAmount", JsonConvert.SerializeObject(allowableAmount)}
};
return new FormUrlEncodedContent(content);
}
异步请求如下:
await _httpClient.RequestAsync(GeneratePaymentRoute,
HttpMethod.Post,
generatedPaymentContent,
new[] { new KeyValuePair<string, string>("user-agent", ChromeUserAgent) }
);
路线如下:
<HttpPost>
Public Function GenerateInsurerPaymentForClaims(claims As IEnumerable(Of Claim),
Optional areClaimsAutoForwarded As Boolean = False,
Optional adjustmentCodes As String = Nothing,
Optional skipFirstClaimAdjustments As Boolean = False,
Optional isReversal As Boolean = False,
Optional allowableAmount? As Decimal = Nothing) As JsonResult
正在读取/反序列化allowableAmount和isReversal的参数时,声明的内容为空。
我缺少明显的东西吗?
编辑:意识到我没有显示,但是请求方的声明是:
claims = new Claim[] { claim }
答案 0 :(得分:0)
当您的路线期望Claim
时,您似乎在GeneratePaymentContent
中传递了一个IEnumerable<Claim>
。
这将导致路由器在反序列化时返回null
。
我假设您的请求中generatedPaymentContent
的值是GeneratePaymentContent()
的返回值。