Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP |向API URL发送JSON帖子时出错_Php_Api_Curl - Fatal编程技术网

PHP |向API URL发送JSON帖子时出错

PHP |向API URL发送JSON帖子时出错,php,api,curl,Php,Api,Curl,我正在尝试将JSON发送到API url。我从test.php发送json,从api.php接收数据。我想将数据记录到一个文本文件中,但没有记录任何内容,我假设$data返回null?在我的test.php文件中,它不断返回“发送错误,请求终止”。我做错了什么?我该如何解决这个问题 test.php api.php 将错误检查添加到api.php,这样您就可以知道发生了什么 不能将数组写入文件,只能写入字符串。因此,编写数组的foo元素 <?php $data = json_decod

我正在尝试将JSON发送到API url。我从
test.php
发送json,从
api.php
接收数据。我想将数据记录到一个文本文件中,但没有记录任何内容,我假设$data返回null?在我的
test.php
文件中,它不断返回“发送错误,请求终止”。我做错了什么?我该如何解决这个问题

test.php


api.php


将错误检查添加到
api.php
,这样您就可以知道发生了什么

不能将数组写入文件,只能写入字符串。因此,编写数组的
foo
元素

<?php
$data = json_decode(file_get_contents('php://input'), true);
if ($data === null) {
    echo json_last_error_msg();
} else {
    file_put_contents("myText.txt", $data['foo']);
    echo "OK";
?>

我假设
…不要假设,测试。并将PHP配置为将错误和警告记录到文件中。
if($server_output==“OK”){
永远不会是
true
,因为api.PHP不会回显“OK”(或者其他任何内容)。所以这并不能以任何方式证明任何事情。
test.php
应该是
api.php
?@Barmar是的,我会修正
fwrite()
的第二个参数应该是字符串。
$data
是数组。
$server_output = curl_exec($ch);

curl_close ($ch);

if ($server_output == "OK") { 
    echo "Sent OK";
} else { 
    echo "Sent BAD, reason: $server_output";
}