OHSCE入門教程(四)-大肚函數PHP輕鬆搞HTTP(S)API(URL/REST)

在各種工程中我們經常和工業總線/以太網設備及部分RF/IR設備打交道,這方面想必大家已經輕車熟路。隨着技術的發展現在大家也能見到一些混合通信設備,他們是配備了互聯網領域常見的REST風格的控制接口的控制設備或終端設備,最早此類設備出現在家用領域,多以WIFI的方式接入和雲端通信,現在這類設備也開始混雜的出現在常規控制領域了。當然現在的需求也常常讓我們和雲靠攏,不免我們就要接入很多的開放平臺、雲服務等。在這些方面HTTP接口大行其道,現行網絡環境中HTTP其實是一種建立在TCP/IP協議上的上層協議(偶見UDP做的),實戰派的OHSCE提供了對HTTP接口方便的調用。

   初識你強大的工具夥伴函數:Ohsce_url_c  (Ohsce_eng_url_c

(OHSCE >=V0.1.22 -執行一箇URL請求。支持身份驗證,支持帶COOKIE、支持GET/POST、支持多協議。
本函數設計爲多用於控製HTTP方式控製的控製設備(如HTTP/TCP網絡繼電器),亦可以做爪取網頁內容時使用。
依賴:PHP/EXT/CURL 請開啟CURL擴展,該擴展爲PHP自帶基本覆蓋所有目前主流使用的PHP環境,大部分部署的環境已默認開啟。

/*************本函數是Ohsce_url_c函數的彆名**********/

Ohsce_eng_url_c($surl,&$odata,$username=null,$password=null,$cookie=false,$short=true,$headers=null)
-$surl 資源目標
string:URL地址 如http://192.168.1.40/do/on1
或
array:複閤資源地址
如array(0=>'http://192.168.1.40/do/on1','postdata'=>$postdata,'proxy'=>'socks5','proxyaddress'=>'10.10.58.42','proxypassword'=>'123456','headers’=>$headerdata)
-$odata 取迴數據所存入的變量
-$username 登陸用戶名
-$password 登陸密碼
-$cookie 保存cookie的文件地址
-$short 短操作
-$headers HEADER數據 ARRAY 0=>true 1=>data
EXAMPLE:
<?php
ini_set('memory_limit',"88M");//重置php可以使用的內存大小爲64M
set_time_limit(0);
ob_implicit_flush(1);
i n c l u d e('loadohsce.php');
Ohsce_url_c('http://www.baidu.com',$data);
echo $data;
sleep(30);
NOTICE:
硬件延時由邏輯控製

     我們就通過OHSCE內置的這個函數,通過近乎一行的代碼擼各種HTTP(S)API。 

     一、【GET】

    GET方式是最流行的HTTP接口調用方式,調用很多開放平臺的接口大多是以GET方式進行,當然一些設備也是。我們以隨身雲的天氣API爲示例,查詢一條天氣信息。

<?php echo ohsce_url_c("http://wthrcdn.etouch.cn/weather_mini?citykey=101010100");

<?php Ohsce_url_c("http://wthrcdn.etouch.cn/weather_mini?citykey=101010100",$ohsceurldata); echo $ohsceurldata;

當然我們推薦您使用第二種方式,因爲您取回來的數據很可能編碼上有問題,您需要進行編碼轉換和JSON/XML解碼。而將數據暫存在一個變量中更爲合理一些。

    更互聯網化一點

   現行的很多API是需要使用HEADER傳送TOKEN的,例如百度APISTORE,ohsce_url_c函數的最後一個參數便是您用來設置HEADER的地方。當然還可以將HEADER作爲數組數據加入URL部分使得代碼更加的簡短(如POST)。 

    二、【POST】

    POST常見於表單的提交,但是咱網絡控制器領域也常見一些廠家將其作爲控制指令的提交方式,雖然它未必是最佳的解決方案(至少交給我不會這麼做),但存在即爲合理,有這樣的產品我們就要適應。

<?php Ohsce_url_c(array(0=>'http://192.168.0.166:80/relay.cgi','postdata'=>"saida2pluse=pluse"),$ohsceurldata,'admin','12345678');

    只需要將OHSCE的URL變爲數組並加入POST內容即可。

    三、牛刀小試。

    這是一個來自某寶的繼電器設備例子。(羣內空間有文件)

<?php
//OHSCE V0.1.25 更新組件請去OHSCE.ORG
i n c l u d e('loadohsce.php');
error_reporting(1);
if(isset($_GET['kg'])){
switch($_GET['kg']){
case "on1":
$sd_kjg_data='saida1on=on';
goto urlc;
case "off1":
$sd_kjg_data='saida1off=off';
goto urlc;
case "pluse1":
$sd_kjg_data='saida1pluse=pluse';
goto urlc;
case "on2":
$sd_kjg_data='saida2on=on';
goto urlc;
case "off2":
$sd_kjg_data='saida2off=off';
goto urlc;
case "pluse2":
$sd_kjg_data='saida2pluse=pluse';
goto urlc;

default:
	goto cend;
}
}
goto thtml;
urlc:
Ohsce_url_c(array(0=>'http://192.168.1.166:80/relay.cgi','postdata'=>$sd_kjg_data),$ohsceurldata,'admin','12345678');
thtml:
?>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>演示</title>
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap-theme.min.css">
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>
<br />
<a href="?kg=on1" class="btn btn-success">打開回路1</a>&nbsp;
<a href="?kg=off1" class="btn btn-danger">關閉迴路1</a>&nbsp;
<a href="?kg=pluse1" class="btn btn-info">點觸1</a>&nbsp;
<br /><br />
<a href="?kg=on2" class="btn btn-success">打開回路2</a>&nbsp;
<a href="?kg=off2" class="btn btn-danger">關閉迴路2</a>&nbsp;
<a href="?kg=pluse2" class="btn btn-info">點觸2</a>&nbsp;


<nav class="navbar navbar-default navbar-fixed-bottom" role="navigation">
  <div class="container">
   <center>Powered by <a href="http://www.ohsce.org">OHSCE 0.1.25</a></center>
  </div>
</nav>
</body>
</html>
<?php
cend:
exit;

   以HTTP方式向位於192.168.1.166IP地址的設備的80端口的relay.cgi文件POST提交進行開啓指定迴路、關閉指定迴路和點控指定迴路,並且進行了身份認證admin:12345678。

   四、HTTPS

   調用方式和HTTP一樣,使得HTTPS URL爲可用。

<?php Ohsce_url_c("https://www.baidu.com",$ohsceurldata); echo $ohsceurldata;

   五、更多

   這個函數還同時支持更多的協議,它爲您操作各家設備提供了方便。例如三星廠的韓華品牌的監控攝像頭提供FTP方式的操作,您便可以使用本函數操作它。

   六、打磨您的工藝細化您的控制流程,並保持更新您的OHSCE框架至最新的穩定版本。

   OHSCE願每一名控制工程師都可以搭上互聯網+的翅膀,每一名PHPWEB工程師都可以衝在物聯網的前言,我們的程序是您可靠的基石。

     官方網站:http://www.ohsce.org & http://www.ohsce.com

     開發者QQ羣:374756165

     GITHUB:https://github.com/OpenIBC/Ohsce

     GIT@OSC:https://git.oschina.net/SFXH/Ohsce

     手冊地址:http://www.ohsce.com/index.php/book/

     捐助&支持OHSCE:http://www.ohsce.com/index.php/company/

     合作&贊助:393562235([email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章