Запрос WCF REST JSON: исключение форматирования

У меня перечисление в качестве одного из параметров в моем Rest API.

Конечный контракт:

List<Transaction> GetTransactions(int employeeID, int recordOffset, int recordLimit, TransactionType transactionType = TransactionType.All);

Запрос InputJSON:

{
            "employeeID":"123",
            "recordOffset": 0,
            "recordLimit": 80,
            "transactionType":"All"
}

Я получаю 400 неверных запросов, когда передаю этот входной JSON с ключом transactionType.

Пожалуйста, дайте мне знать, как я должен передавать значение ENUM в запросе json.

public enum TransactionType
{
    All = 0,
    Incoming = 1,
    Outgoing = 2
}

Сообщение об исключении:

The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://Services/2015/03:transactionType. The InnerException message was 'There was an error deserializing the object of type Entities.TransactionType. The value 'All' cannot be parsed as the type 'Int64'.'.  Please see InnerException for more details
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
0
15
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ожидаемый параметр - int. Здесь вы должны передать значение int 0, 1 или 2 в запросе JSON.

В зависимости от того, как вы создаете свой JSON-запрос, вы можете добавить желаемое значение Enum, например transactionType = TransactionType.All.

Таким образом, вы действительно можете использовать Enum при создании запроса, чтобы убедиться, что вы используете жизнеспособные значения.

Не за что. Также проверьте, employeeID - это string, где GetTransactions() ожидает int для employeeID.

deedub 06.12.2018 09:56

Другие вопросы по теме