【问题标题】:How to send multiple values to Datasnap server using Postman如何使用 Postman 向 Datasnap 服务器发送多个值
【发布时间】:2019-03-12 21:42:46
【问题描述】:

我的 Datasnap 服务器中有两种方法。第一个接受JsonObject

1º 方法 - 有效

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

要将数据发送到UpdateImagem,我在 Postman 中创建了一个 POST 并发送了一个 raw

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

JsonObj成功进入datasnap服务器,我可以获得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-dataform-urlencoded,我都给出了相同的错误:Message content is not a valid JSON value

有什么方法可以发送这些值?

Obs:我无法更改服务器方法,因为我不是在服务器中工作的人。

【问题讨论】:

  • 有工作的客户吗?在这种情况下,您可以检查 HTTP 流量以查看预期的请求格式。
  • 怎么做?
  • 使用数据包嗅探器 (Wireshark) 或 HTTP 代理 (Fiddler2)

标签: delphi datasnap


【解决方案1】:

您的 JSON 数据实际上是无效的。

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

缺少一个逗号...

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

【讨论】:

  • 对不起,我错过了答案中的逗号。我在邮递员中使用过它,它给出了同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
相关资源
最近更新 更多