有人让 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/