有人让 JSON 与 TIdHttp 一起工作吗?
PHP 总是在 $_POST
中返回 NULL,我做错了什么吗?
德尔福源代码:
http := TIdHttp.Create(nil);
http.HandleRedirects := True;
http.ReadTimeout := 5000;
http.Request.ContentType := 'application/json';
jsonToSend := TStringStream.Create('{"name":"Peter Pan"}');
jsonToSend.Position := 0;
Memo1.Lines.Text := http.Post('http://www.website.com/test.php', jsonToSend);
jsonToSend.free;
http.free;
PHP 源代码:
<?php
$value = json_decode($_POST);
var_dump($value);
?>
最佳答案
您不能使用 TStringList
来发布 JSON 数据。 TIdHTTP.Post()
将以破坏 JSON 数据的方式对 TStringList
内容进行编码。您需要将 JSON 数据放入 TStream
中。 TIdHTTP.Post()
将按原样传输其内容。此外,不要忘记设置 TIdHTTP.Request.ContentType
属性,以便服务器知道您正在发布 JSON 数据。
关于php - Delphi TIdhttp 发布 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175952/