/**
* fsockopen 来模拟生成 HTTP 连接
*/
public function doRequest($host,$path, $param=array()){
$query = isset($param)? http_build_query($param) : '';
$port = 10086;
$errno = 0;
$errstr = '';
$timeout = 360;
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
$out = "POST ".$path." HTTP/1.1\r\n";
$out .= "host:".$host."\r\n";
$out .= "content-length:".strlen($query)."\r\n";
$out .= "content-type:application/x-www-form-urlencoded\r\n";
$out .= "connection:close\r\n\r\n";
$out .= $query;
fputs($fp, $out);
fclose($fp);
}
调用
//查询漏电自检
$host = $_SERVER['SERVER_NAME'];
$path = "/apiv2/get-mogo/index";//这个是去请求的接口
$param = [
"sid" => $deviceid
];
$result = $this->doRequest($host, $path, $param);
调用的接口
public function actionIndex()
{
$request = \Yii::$app->request;
if ($request->isPost) {
$attributes = $request->post();
$sid = isset($attributes['sid']) ? $attributes['sid'] : '';
$path = \app\services\VStatusLog::newestQueryup($sid);
$path = json_encode($path,true);
return $path;
}else {
return $this->returnData('', -1, '请求方式错误');
}
}
根据结果进行判断
用法1: 添加一个数据库字段(0查询前 1 查询成功 2查询失败) 查询后修改