Как отправить несколько значений на сервер Datasnap с помощью Почтальона - PullRequest
1 голос
/ 13 марта 2019

У меня есть два метода на моем сервере Datasnap. Первый принимает JsonObject.

1º Метод - Работы

function TServerMethods1.UpdateImagem(JsonObj: TJSONObject): Boolean;

Чтобы отправить данные на UpdateImagem, я создаю POST в Почтальоне и отправляю raw.

{
    "nome":"soon",
    "tipofoto":"foto"
}

JsonObj успешно попадает на сервер данных, и я могу получить JsonObj.GetValue('nome') и JsonObj.GetValue('tipofoto').Value.

2º Метод - не работает

Вместо получения JsonObj второй метод получает 4 значения.

function TServerMethods1.UpdateFile(const AArquivo, Pasta: String; Size: Int64;
  const ASetStream: TStream): boolean;

Я не могу отправить данные этому методу. (Сейчас я игнорирую значение ASetStream, потому что не могу даже отправить остальные).

1º Попытка - Я пытался отправить как JSON.

{
    "AArquivo":"soon",
    "Pasta":"foto",
    "Size":"0"
}

Это возвращает мне ошибку: Cannot convert JSON value {"AArquivo"...} input into TDBXTypes.WideString.

2º Попытка - Я пытался отправить его как form-data и form-urlencoded, оба меня выдает ту же ошибку: Message content is not a valid JSON value.

Есть ли способ отправить эти значения?

Obs: Я не могу изменить метод сервера, потому что я не тот, кто работает на сервере.

1 Ответ

0 голосов
/ 13 марта 2019

Ваши данные JSON фактически недействительны.

{
    "AArquivo":"soon",
    "Pasta":"foto"
    "Size":"0"
}

отсутствует запятая ...

{
    "AArquivo":"soon",
    "Pasta":"foto",
    "Size":"0"
}
...