搜尋

首頁  >  問答  >  主體

如何使php://input接收到另一个php的数据

程序设置只有接受到APP、POST过来的数据才会继续走,否则直接跳出。

如果想通过php来进行测试,那么要怎么去编译?

通过curl去post,在file_get_contents("php://input")里被判断为空。

a.php

1

2

3

4

5

6

<code>$json = file_get_contents("php://input");//接收APP请求

if (isset($json) && !empty($json)) {

    $json = json_decode($json, true);

}else{

    die("没接收到任何数据,请求失败!");

}</code>

b.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<code>$url = "a.php";

 

$param = [

    'a'=>'xxx',

    'b'=>'xxx'

    ];

 

$ch = curl_init();

 

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

 

$response = curl_exec($ch);

 

curl_close($ch);

 

echo $response;</code>

阿神阿神2906 天前911

全部回覆(3)我來回復

  • PHPz

    PHPz2017-04-10 16:40:22

    你传过云用的http_build_query,收到却用json_decode,这肯定没数据呀,收到数据应该用parse_str解析

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-10 16:40:22

    有可能是编码问题,先将接收过来的东西存一下,看看是否有数据 不要直接json_decode

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-10 16:40:22

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    <code class="php">

    $url = "http://localhost/a.php";

    $param = [

        'a'=>'xxx',

        'b'=>'ooo'

        ];

     

    $ch = curl_init();

     

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_POST, true);

    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($param));

    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

     

    $response = curl_exec($ch);

     

    curl_close($ch);

     

    echo $response;</code>

    回覆
    0
  • 取消回覆