1

我在API-HTTP POST请求中有这个语法

public IHttpActionResult SyncWealthItemsForAccount([FromBody] List<IntegrationWealthItem> wealthItems, Data.EnumerationsIntegration.IntegrationType integrationType, string accountGuidId)

我想在 Postman 中测试它:我在标题中传递了授权和内容类型:

Content-Type:application/x-www-form-urlencoded

这就是我传递 WealthItems 列表的方式

在此处输入图像描述

[0].ExternalID 表示 WealthItems[0].ExternalID

我想这不是正确的传递方式。我有以下错误

{
    "Message": "The request is invalid.",
    "ModelState": {
        "wealthItems": [
            "Ambiguous match found."
        ]
    }
}

任何帮助,将不胜感激 。

4

2 回答 2

3

例如,如果

@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
          }
]
于 2020-01-29T09:54:24.020 回答
0

请求必须作为 JSON 传递。因此,您应该将 Postman 中的 Headers 部分设置为Content-Typeapplication/json在此处输入图像描述

您在邮递员中的正文部分应该选择Raw选项,正文可以像下面的片段一样, 在此处输入图像描述 注意:在此示例中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
    }
 ]
于 2019-10-18T16:02:05.947 回答