【发布时间】: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-data 和 form-urlencoded,我都给出了相同的错误:Message content is not a valid JSON value。
有什么方法可以发送这些值?
Obs:我无法更改服务器方法,因为我不是在服务器中工作的人。
【问题讨论】:
-
有工作的客户吗?在这种情况下,您可以检查 HTTP 流量以查看预期的请求格式。
-
怎么做?
-
使用数据包嗅探器 (Wireshark) 或 HTTP 代理 (Fiddler2)