php - Delphi TIdhttp 发布 JSON?

标签 php json delphi indy

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

相关文章:

json - Angular:HttpClient 错误,响应为空 200/201(总是调用 JSON.parse (""))

php - 如何从php中的android应用程序的post方法解码json数据?

delphi - 如何在 TImage 上正确显示带有 alpha channel 的 TBitmap?

javascript - 使用 php 和 javascript 创建实时聊天

php - 分析和优化 PHP/MySQL 网站

php - PDO语法错误

json - 如何告诉 RestTemplate 使用 UTF-8 编码进行 POST?

delphi - 如何启动具有管理员权限的应用程序?

delphi - Delphi 4 Pro可以在Windows XP(或更高版本)上可靠地安装和使用吗?

php - 显示斯拉夫字符