Content-Type application / json不返回POST字段

时间:2018-02-06 18:31:10

标签: php json xml curl header

我正在将cURL请求发送到我的服务器上并且它正在打印空数组,除非我从请求中删除Content-Type:application / json标头。为什么会这样?它应该期待json格式作为回报....

$o = [ 'key' => 'value123' ];

        $headers[]  = 'Content-Type: application/json';
        $headers[]  = 'Moj-pierwszy-header: prosty/do/zapamietania';


        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL, $path.'test.php');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $o);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch); 
        curl_close($ch);      



        echo( $output );

和test.php

echo json_encode( $_POST );

任何人?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

请参阅以下代码段:

     $o = json_encode([ 'key' => 'value123' ]);

     $headers[]  = 'Content-Type: application/json';
     $headers[]  = 'Moj-pierwszy-header: prosty/do/zapamietania';


    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $path.'test.php');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $o);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch); 
    curl_close($ch); 

    echo( $output );

和输出,而不是$ _POST使用下面的代码片段:

  

$ post = json_decode(file_get_contents('php:// input'));

希望,它对你有用。