php curl post 获取数据接口 同步局域网 人脸识别设备数据

Posted GavinXxg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php curl post 获取数据接口 同步局域网 人脸识别设备数据相关的知识,希望对你有一定的参考价值。

从服务器调取数据数去---同步到局域网服务器 上传到某台设备上
<?php header("Content-type: text/html;charset=utf-8"); $url = "http://www.hdyun.com//api/index.php?type=iot&m=face&a=sync"; //读取海大云数据的一个接口 //请求参数 $data = array("client_id" =>2); //请求接口 并接收数据 返回JSON格式 //请求接口 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); $human = json_decode($res, true); $url = "http://192.168.1.180:8080/addDeviceWhiteList"; foreach ($human[data][faces] as $v) { $img = base64_encode(file_get_contents($v[picpath])); $res = array( "usertype" => "white", "name" => $v[name], "sex" => $v[gender] == 1 ? "" : "", "peoplestartdate"=>date("Y-m-d H:i:s"), "peopleenddate"=>"2025-01-01 12:12:12", "idno" => $v[idcard]==‘‘?rand("100000000", "99999999").time() :$v[idcard], //身份证号 "icno" => date("Ymd"), "picData1" =>$img, ); } $param = array( "totalnum" => 1, "currentnum" => 1, "pass" => "888888", "data" => $res ); print_r($param);die; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($param)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $r = curl_exec($ch); //print_r($r);die; curl_close($ch); $rs = json_decode($r, true); if ($rs[result] == 0) { echo "ok"; } else { echo "NO"; }

类似一样的还以还有一种
<?php
set_time_limit(0);
$url = "http://www.hdyun.com//api/index.php?type=iot&m=face&a=sync";
$succ = 0;
$err = 0;
//物流接口的参数定义
$sl_data = array(
    client_id => 2,
);
$handle = fopen("log.txt", "r");
if ($handle) {
    $text = fread($handle, 1024);
    $sl_data[lastdate] = $text;
}
fclose($handle);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 500);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($sl_data));
$output = curl_exec($ch); //执行并获取数据
curl_close($ch);
$outputArr = json_decode($output, true);
$txt = "";
if ($outputArr[data][faces]) {
    foreach ($outputArr[data][faces] as $k => $val) {
        $file = $val[picpath];
        if (!file_get_contents($file)) {
            $image_data = "1";
        } else {
            $image_data = base64_encode(file_get_contents($file));
        }
        $item = array(
            "usertype" => "white",
            "idno" => $val[idcard] ?: time() . mt_rand(10000000, 99999999),
            "picData1" => $image_data,
            "name" => $val[name],
        );
        $wurl = "http://192.168.1.180:8080/addDeviceWhiteList";
        //物流接口的参数定义
        $s_data = array(
            totalnum => count($outputArr[data][faces]),
            currentnum => 1,
            data => $item
        );
        $chs = curl_init();
        curl_setopt($chs, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($chs, CURLOPT_TIMEOUT, 500);
        curl_setopt($chs, CURLOPT_URL, $wurl);
        curl_setopt($chs, CURLOPT_POSTFIELDS, json_encode($s_data));
        $xml = curl_exec($chs); //执行并获取数据
        curl_close($chs);
        echo "index " . $k . "
";
        $result = json_decode($xml, true);
        if ($result[result] == 0) {
            $succ++;
        } else {
            $err++;
        }
        $txt = $val[lastdate];
    }

    $myfile = fopen("log.txt", "w");
    fwrite($myfile, $txt);
    fclose($myfile);
}

die("传输完成,成功" . $succ . "条,失败" . $err . "");

 

 

 

以上是关于php curl post 获取数据接口 同步局域网 人脸识别设备数据的主要内容,如果未能解决你的问题,请参考以下文章

php curl如何直接转发当前php接收的headers?get请求如何直接转发get参数?post请求如何直接转发post参数?

记一次curl post请求数据被截断问题处理

如何在php中获取curl请求的请求头信息及相应头信息

thinkphp5.0 CURL用post请求接口数据

如何在php中获取curl请求的请求头信息及相应头信息

在php中分别使用curl的post提交数据的方法和get获取网页数据的方法