我在 API-HTTP POST 请求
中使用了这种语法public IHttpActionResult SyncWealthItemsForAccount([FromBody] List<IntegrationWealthItem> wealthItems, Data.EnumerationsIntegration.IntegrationType integrationType, string accountGuidId)
我想在Postman中进行测试:我在标头中传递了Authorization和content-type:
Content-Type:application/x-www-form-urlencoded
这是我传递WealthItems列表的方式
[0]。外部ID表示WealthItems [0]。外部ID
我猜这不是传递它的正确方法。我有下面的错误
{
"Message": "The request is invalid.",
"ModelState": {
"wealthItems": [
"Ambiguous match found."
]
}
}
任何帮助将不胜感激。
答案 0 :(得分:1)
例如,如果
@POST
@Path("update_accounts")
@Consumes(MediaType.APPLICATION_JSON)
@PermissionRequired(Permissions.UPDATE_ACCOUNTS)
void createLimit(List<AccountUpdateRequest> requestList) throws RuntimeException;
其中AccountUpdateRequest:
public class AccountUpdateRequest {
private Long accountId;
private AccountType accountType;
private BigDecimal amount;
...
}
那么您的邮递员请求将是: http://localhost:port/update_accounts
[
{
"accountType": "LEDGER",
"accountId": 11111,
"amount": 100
},
{
"accountType": "LEDGER",
"accountId": 2222,
"amount": 300
},
{
"accountType": "LEDGER",
"accountId": 3333,
"amount": 1000
}
]
答案 1 :(得分:0)
请求必须作为JSON传递。因此,您应该在Postman中的Headers部分设置 Content-Type 为 application / json 。
您在邮递员的身体部分应选择原始选项,并且身体可以像下面的片段一样, 注意:在此示例中, MessagePartTransfer 是一个列表,每个MessagePartTransfer具有2个属性-MessagePartId和MessagePartTypeId
正在测试的服务方法:
public ICollection<MessagePartTransferResponse> DistributeMessages(ICollection<MessagePartTransfer> messageParts, long applicationId, long transactionId)
MessageTransferPart类和属性:
[DataContract(Name = "MessagePartTransfer")]
public class MessagePartTransfer
{
public MessagePartTransfer();
[DataMember]
public long MessagePartId { get; set; }
[DataMember]
public long MessagePartTypeId { get; set; }
}
邮递员请求正文:(在本示例中,我将发送2个MessagePartTransfer类型的对象)
[
{
"MessagePartId": 1,
"MessagePartTypeId":2
},
{
"MessagePartId":3,
"MessagePartTypeId":4
}
]