EasyNVR攝像機網頁無插件直播方案H5前端構建之:關於接口調用常見的一些問題(401 Unauthorized)

背景分析

最近在使用EasyNVR的過程當中,不少小夥伴諮詢關於接口調用的問題,初步判斷應該是遇到權限問題(401 Unauthorized)。EasyNVR爲第三方系統和應用提供了標準的API接口,方便對接二次開發爲專屬於本身企業的互聯網直播平臺。接口通常分爲接口定義者和接口調用者,定義者能夠規定接收參數的類型及返回形式,而接口定義者則只能徹底按照接口定義者規定的參數進行訪問。就叫是咱們所說的webService(網絡服務)。
錯誤狀態jquery

本篇博文將基於自身對EasyNVR接口的調用和一些用戶的反饋的問題來對接口調用進行說明:

接口概述

API採用Restful風格的Http協議,所有請求都使用Get/Post方式,字符不區分大小寫。基本結構以下:web

http://<IP>:<Port>/api/<Version>/<Action>?<Param1>=<value>&<Param2>=<Value>&.....

參數

參數名稱 定義 說明
IP Platform Address IP地址
Port Platform Port 通信端口
Version API Version API版本
Action Action 執行的操做
Param Action Parameter 操做所使用的參數,能夠有多個參數,每一個參數對應一個Value。
Value Parameter Value 參數值,若是Value的字符串中出現&等特殊字符,則必須用」」包住Value。

返回值

調用API會返回Json字符串,表明操做返回的結果ajax

{
   "EasyDarwin" : {
      "Body" : {
         ……
      },
      "Header" : {
         "CSeq" : "1",
         "ErrorNum" : "200",
         "ErrorString" : "Success OK",
         "MessageType" : "MSG_SC_API_ACK",
         "Version" : "1.0"
      }
   }
}

接口的調用

許多小夥伴只注重接口的功能,每每直接傳參調接口,因而就出現開篇的401報錯;最簡單的方法是,在咱們拿到接口文檔後,能夠先閱讀一下文檔,作到心中有數;api

接口調用前先進行簡單的說明:EasyNVR大部分的調用接口須要在cookie中攜帶token信息;對於這個token信息,是經過login接口返回的。當咱們成功請求接口: 」/api/v1/login?username=xxx&password=xxx「時,會返回一個token信息;安全

{
	   "EasyDarwin" : {
	      "Body" : {
	         "Token" : "a19cb5f6e7d2449d8d24c8a0fc554ca7"
	      },
	      "Header" : {
	         "CSeq" : "1",
	         "ErrorNum" : "200",
	         "ErrorString" : "Success OK",
	         "MessageType" : "MSG_SC_SERVER_LOGIN_ACK",
	         "Version" : "1.0"
	      }
	   }
	}

咱們對獲取到的token信息存儲到cookie中。出現401,大多數狀況是cookie中tooken的攜帶、接口格式的錯誤、傳遞參數的錯誤。服務器

友情提示: 有的大兄弟在請求login接口時就發現出現401權限限制;該接口中password是通過MD5加密的。在進行其餘接口請求時在request headers 的cookie會攜帶對應的tooken來進行請求。微信

實例展現以下:

首先引入jqueryCookie,用於設置cookie(若是有其餘方法設置cookie能夠不用引用)
<script src="/adminlte-2.3.6/plugins/cookie/jquery.cookie.min.js"></script>
經過ajax來進行卡接口的請求
  • 在沒有調用接口進行設置前

cookie值

$.ajax({
                    type: "GET",
                    url: "api/v1/login",
                    data: {
                        username: username,
                        password: password
                    },
                    global: false,
                    success: function(data) {
                        try {
                            var ret = JSON.parse(data);
                            var token = ret.EasyDarwin.Body.Token;
                            $.cookie("token", token);
                            //將tooken設置進cookie中
                            $.cookie("username", username);
                        } catch (e) {
                            console.log(e);
                        }
                    },

經過ajax請求成功後對得到數據的處理,將tooken出入cookie中:cookie

  • 調用接口並進行cookie設置後:

EasyNVR-成功設置cookie

此時當咱們進行其餘接口的請求時,會發如今request header 存在cookie tooken,而且能夠成功請求接口。網絡

成功請求效果圖

EasyNVR硬件設備

EasyNVR智能雲終端硬件設備,填補了互聯網直播行業設備空白,軟硬一體,雲端運維。體積小,方便放置部署;7*24小時不間斷運行,低功耗;省去自建視頻服務器高額費用;專屬視頻服務,免除了與其餘硬件的相互影響,通電聯網便可成功運行,部署操做簡單。
EasyNVR硬件運維

EasyNVR應用場景

EasyNVR能夠說已經成爲國內視頻互聯網化基礎建設的排頭兵,幾乎各個民生行業都已經有了EasyNVR視頻能力輸出的身影,EasyNVR多年服務於各行各業視頻基礎建設,EasyNVR的可靠性、完整性、穩定性已經受到了業界的普遍承認!
EasyNVR

風景直播

經過將景區的攝像頭經過EasyNVR系統可使管理部門建設掌上視頻監管系統(景區內部使用)方便隨時隨地查各個景區的狀況。同時能夠將景區的經典風景經過微信、微博、網站和APP等方式對公衆展現,用於宣傳景區風景,展現景區魅力,提升景區知名度。
EasyNVR場景一

雪亮工程

目前各地市社會視頻資源存在種類繁多,各系統獨立運行,沒有有效整合和聯網應用,經過EasyNVR系統,將各種視頻資源整合,統一管理、統一調度,資源共享,實現了資源利用最大化,避免了重複建設。

EasyNVR場景二

平安校園

把傳統分散的校園監控彙總到EasyNVR系統,實現把傳統的本地監控提高到隨時隨地的遠程監控,把傳統的純粹的監控上升到管理,使視頻監控成爲學校教學管理的有力工具。更重要的是讓家長一塊兒參與,提高教學的主動性。提高學校聲譽和學校品牌。

EasyNVR場景三

平安工地

將工地的攝像頭經過平臺對施工方、監理方和監管部門開放,方便實時瞭解工程進度,工地人員安全以及財產狀況,自成力能平臺,專爲工地構建的視頻監控平臺。

EasyNVR場景四

明廚亮竈

而隨着互聯網和移動互聯網被廣大消費者接受,「社會共治」將是是明廚亮竈目前的核心理念。採用社會共治方式,將各餐飲企業的後廚視頻經過EasyNVR系統讓老百姓經過手機可實時看到後廚的狀況,既起到全社會監督的效果也是對餐飲企業的宣傳。

EasyNVR安防攝像機網頁流媒體服務

EasyNVR是一款擁有完整、自主、可控知識產權,同時又可以具有軟硬一體功能的安防互聯網化流媒體服務器,可以經過簡單的網絡攝像機通道配置,將傳統監控行業裏面的高清網絡攝像機IP Camera、NVR等具備RTSP、Onvif協議輸出的設備接入到EasyNVR,EasyNVR可以將這些視頻源的音視頻數據進行拉取,轉換爲RTMP/HLS,進行全平臺終端H5直播(Web、Android、iOS),而且EasyNVR可以將視頻源的直播數據對接到第三方CDN網絡,實現互聯網級別的直播分發。詳情可訪問EasyNVR官網:http://www.easynvr.com

相關文章
相關標籤/搜索