PHP发送和接收POST数据

1. 发送post数据

$data = '{
    "id": "17999030",
    "method": "sayHello",
    "jsonrpc": "2.0",
    "params":
        {
            "acmac": "00E0614CA7C6",
            "acconf_version": "2015-10-28-09-45"
        }
    }';
$url = "http://wifi.doucube.com/index.php/interface/device/ConfHeartbeat.html";

$res = http_request($url, $data);

var_dump($res);

//HTTP请求(支持HTTP/HTTPS,支持GET/POST)
function http_request($url, $data = null)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)){
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
}

 

2. 接收post数据

<?php
header('Content-type: application/json');

//方倍工作室
$postStr = isset($GLOBALS["HTTP_RAW_POST_DATA"])?$GLOBALS["HTTP_RAW_POST_DATA"]:"";
logger('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].(empty($_SERVER['QUERY_STRING'])?"":("?".$_SERVER['QUERY_STRING'])));
logger($postStr);

foreach ($_GET as $key=>$value)
{
    logger("_GET: Key: $key; Value: $value");
}
foreach ($_POST as $key=>$value)
{
    logger("_POST: Key: $key; Value: $value");
}

//日志记录
function logger($log_content)
{
    $max_size = 100000;
    $log_filename = "raw.log";
    if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
    file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);
}

$arr = array(
    'code' => 0,
    'errMsg' => 'OK',
    // 'member' =>array(
        // array(
            // 'name' => '李逍遥',
            // 'gender' => '男'
        // ),
        // array(
            // 'name' => '赵灵儿',
            // 'gender' => '女'
        // )
    // )
);  

echo json_encode($arr);
?>

 

时间: 2024-10-24 00:34:23

PHP发送和接收POST数据的相关文章

Asp.net中C#使用Socket发送和接收TCP数据示例

程序代码  代码如下 复制代码 using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; namespace ConsoleApplication1 {     public static class SocketTest     {         private static Encoding encode = Encoding.

利用ASP发送和接收XML数据的处理方法

xml|数据 因为要做移动梦网WAP的一些接口,所以要用到这种方式,接下来会有ASP.net版本的,这个是ASP版本的,利用了MSXML2.XMLHTTP对像. request.asp dimHttpssetHttps=server.createobject("MSXML2.XMLHTTP")'定义一个XMLHTTP对像Https.open"POST","http://127.0.0.1/testpost/response.asp",falseH

利用ASP发送和接收XML数据的处理方法_ASP基础

request.asp dim Https set Https=server.createobject("MSXML2.XMLHTTP") '定义一个XMLHTTP对像 Https.open "POST","http://127.0.0.1/testpost/response.asp",false Https.send " echo 123456 987654 11111 22222 " if Https.readystate

简述Android中实现APP文本内容的分享发送与接收方法_Android

谨记(指定选择器Intent.createChooser()) 开始今天的内容前,先闲聊一下: (1)突然有一天头脑风暴,对很多问题有了新的看法和见解,迫不及待的想要分享给大家,文档已经写好了,我需要通过微信或者QQ,短信等社交工具发送给大家. (2)在网上发现一段特别好的文章,想要保存收藏下来. 上面描述了进入智能手机时代后,我们经常遇到的两种情况,那么作为开发者的我们如何让自己开发的APP实现这两种功能呢,下面我们以实现文本的发送分享以及接收来梳理下两种功能的实现过程(其他类型的数据在博文末

udp 如何发送较大的数据?

问题描述 我用udpclient发送数据,将数字拆分成若干个数组(每次发送的数据大小为:byte[1470])然后循环发送.发送8次以下没有问题.但是超过8次的数据量就接受不到了.最多只能接收到7个数据包.发送用的是udp.send();此发送没有用异步应该是没有问题的,8个包以下的数据量就没有问题.发送超过7次时接收到最多只有收到7个包.//接收数据的代码用的是udpClient的BeginReceive和EndReceive方法.不知道那里有问题.是不是udp或套接字对发送数据的次数有限制,

解决网络不通数据只发送不接收

网络的畅通是表现在既有发送包,也有接收包,只有来去都畅通才正常.但是如果只有发送,却没有接收,碰到这样的故障到底又是怎么回事呢?在笔者短暂的两年网管生涯中,出现了几次这样的故障,但他们发生的原因又各有不同.今天笔者就把一些解决方法奉献给大家. 一般来说,出现这种故障的时候,网络连接都是都是好的,即不会出现红色的叉子图标.但这又只是一种表现的正常,因此我们入手的时候必须先从自身入手. 从自身入手的第一点就是检查出现该故障前有没有安装过什么软件,有没有改过什么设置,尤其是杀毒软件.防火墙这一类的软件

android 蓝牙编程重点---如何发送和接收16进制数据

与蓝牙模块通信最重要的地方就是数据的发送和接收,因为是底层的操作,所以更多是发送16进制数据. 进制转换是我们程序员的必修课,属于基本素质.这里需要的是将字节数组转化为16进制字符串,方法都是通用的: public static String bytesToHexString(byte[] bytes) { String result = ""; for (int i = 0; i < bytes.length; i++) { String hexString = Integer

AS3中数据发送与接收

先回顾一下as2中相关的解决办法 相信大部分人用的都是LoadVars类吧   1 var xianshi_lv = new LoadVars(); 2 xianshi_lv.bianliang1 = "变量一"; 3 xianshi_lv.bianliang2 = "变量二"; 4 xianshi_lv.bianliang3 = "变量三"; 5 xianshi_lv.sendAndLoad("http://10.7.87.222/s

nat穿透 udp-谁给一个在两个不同局域网内的主机,实现socket编程,能够发送和接收简单的数据

问题描述 谁给一个在两个不同局域网内的主机,实现socket编程,能够发送和接收简单的数据 本鸟在 网上查了一下资料,大部分都是关于tcp,udp穿透nat的方案,有一种是通过在一个外网的服务端的基础上实现,这得需要买一个外网ip,这种方案,我放弃了,我没钱买一个在公网上的ip 还一种一方端口映射,,不用外网的ip这种方式怎么实现啊??难道只是在路由器的转发规则,虚拟服务器上把自己的主机的ip和那个端口号添上就可以吗??上就可以吗??