在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RK3576開發(fā)板的http/https通訊

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-10 11:24 ? 次閱讀

1. HTTP/HTTPS簡介

HTTP(全稱:Hyper Text Transfer Protocol,超文本傳輸協(xié)議)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個(gè)客戶端和服務(wù)器請(qǐng)求和應(yīng)答標(biāo)準(zhǔn),用于從WWW服務(wù)器傳輸超文本到本地的傳輸協(xié)議。

而HTTPS(全稱:Hyper Text Transfer Protocol over SecureSocket Layer)是以安全為目標(biāo)的HTTP通道,在原有HTTP的基礎(chǔ)上通過傳輸加密和身份認(rèn)證(即增加SSL/TSL安全訪問協(xié)議)保證了傳輸過程的安全性。

1.1 HTTP和HTTPS的區(qū)別

HTTP和HTTPS的區(qū)別如下所示。

協(xié)議 HTTP HTTPS
CA證書 不需要 需要
傳輸加密方式 明文傳輸,無加密 SSL/TSL加密傳輸
連接方式 端口號(hào)使用80 端口號(hào)使用443
連接狀態(tài) 無狀態(tài)的 由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議

1.2 請(qǐng)求和響應(yīng)

典型的HTTP/HTTPS通訊就是應(yīng)用在瀏覽器與網(wǎng)頁服務(wù)器之間,瀏覽器即為客戶端,負(fù)責(zé)發(fā)出請(qǐng)求,接收?qǐng)?bào)文,渲染顯示效果。網(wǎng)頁服務(wù)器即為服務(wù)器,負(fù)責(zé)應(yīng)答請(qǐng)求,管理服務(wù)器文件、處理具體業(yè)務(wù)。而在某些情況中,HTTP可以作為信息交換的通訊規(guī)則。

客戶端需要資源時(shí)發(fā)送出來的即為請(qǐng)求報(bào)文,服務(wù)器接收到請(qǐng)求后向客戶端返回的就是響應(yīng)報(bào)文,HTTP規(guī)定了請(qǐng)求報(bào)文和響應(yīng)報(bào)文的格式。

請(qǐng)求報(bào)文格式如下所示。

wKgZO2geyZuAesvHAAAurVe-5JM872.png

對(duì)于本文而言,我們主要關(guān)注請(qǐng)求方法和URL即可。

請(qǐng)求行
報(bào)文元素 描述
請(qǐng)求方法 常見的方法有:
GET:用于檢索和獲取服務(wù)器的資源,請(qǐng)求內(nèi)容會(huì)在URL上顯示;
POST:用于創(chuàng)建或更新服務(wù)器的內(nèi)容,請(qǐng)求內(nèi)容不會(huì)在URL上顯示,而是在顯示在主體內(nèi)。
URL 服務(wù)器的虛擬文件路徑,將在下面章節(jié)重點(diǎn)介紹。

響應(yīng)報(bào)文示例如下所示,主要組成部分有:

狀態(tài)行(包含協(xié)議版本、狀態(tài)值、狀態(tài)短語);

響應(yīng)消息頭(以鍵值對(duì)的形式存在,例如時(shí)間、數(shù)據(jù)類型、數(shù)據(jù)長度等);

空行(用于區(qū)分報(bào)文頭和響應(yīng)正文);

響應(yīng)正文(對(duì)于網(wǎng)頁而言,常見的是html代碼,也可以是音視頻文件、圖片,通常是消息報(bào)頭的Content-Type指定)。

wKgZPGgeyZyABY9ZAAFXplfSI7E288.png

1.3 URL

假設(shè)我們搭建了一個(gè)環(huán)境檢測(cè)服務(wù)器系統(tǒng),用于采集、記錄全市各個(gè)觀測(cè)點(diǎn)的環(huán)境數(shù)據(jù),假定服務(wù)器的存放結(jié)構(gòu)如下所示,此服務(wù)器在公網(wǎng)上的域名為www.huanjin.com,里面有兩個(gè)設(shè)備,每個(gè)設(shè)備存放了不同日子的氣溫?cái)?shù)據(jù),當(dāng)客戶端需要調(diào)取具體設(shè)備具體數(shù)據(jù)時(shí),則需要提交一個(gè)唯一的路徑給服務(wù)器查找,這個(gè)唯一路徑就是URL。

wKgZO2geyZyAQMp0AADTwIDpPRE470.jpg

URL(Uniform Resource Locator,統(tǒng)一資源定位符),存放在請(qǐng)求報(bào)文的請(qǐng)求行內(nèi),充當(dāng)路標(biāo)作用。當(dāng)我們?yōu)g覽網(wǎng)頁時(shí),點(diǎn)擊進(jìn)入不同的組件,瀏覽器就會(huì)自動(dòng)的幫我們填充不同的URL,地址的構(gòu)成如下所示。完整的URL包含:協(xié)議部分、網(wǎng)址部分、文件地址。

wKgZPGgeyZyAYRRKAAB_2ysayqM822.jpg

具體內(nèi)容如下所示。

組成部分 描述
協(xié)議 以“//”分割,常見的有http和https;
網(wǎng)址 是公網(wǎng)上獨(dú)一無二的域名,即人們常見的www.baidu.com等
文件地址 從域名后的第一個(gè)“/”到最后一個(gè)“/”前的內(nèi)容,被稱為虛擬目錄
從最后一個(gè)“/”后到“#”前,即為文件名

例如我們想獲取環(huán)境檢測(cè)服務(wù)器中設(shè)備1的12月25號(hào)數(shù)據(jù),填寫的請(qǐng)求報(bào)文就是,GET請(qǐng)求,URL為“http://www.huanjin.com/Device-1/日期數(shù)據(jù)/20211225”。

URL還可以攜帶變量信息,名稱為URL查詢字符串,形式為:

https://www.Adblock.com/s?a=123&b=234

變量存放在URL結(jié)尾處,以“?”開頭,以“參數(shù)名=值”的鍵值對(duì)形式存放,多個(gè)參數(shù)用“&”分割。

1.4 HTTPS使用要點(diǎn)

通過以上敘述可知,使用HTTPS需要時(shí)刻圍繞以下幾點(diǎn):

CA證書,HTTPS協(xié)議用SSL/TSL;

發(fā)送數(shù)據(jù)使用POST請(qǐng)求,服務(wù)器地址使用URL格式表示;

接收數(shù)據(jù)、文件使用GET請(qǐng)求,服務(wù)器地址使用URL格式表示;

我司的easyeai-api軟件開源庫將復(fù)雜的報(bào)文格式、收發(fā)操作做了統(tǒng)一的封裝,為客戶提供簡單便捷的調(diào)用方式實(shí)現(xiàn)HTTP/HTTPS通訊功能。

2. 快速上手

如果您初次閱讀此文檔,請(qǐng)閱讀:《入門指南/源碼管理及編程介紹/源碼工程管理》,按需管理自己工程源碼(注:此文檔必看,并建議采用【遠(yuǎn)程掛載管理】方式,否則有代碼丟失風(fēng)險(xiǎn)!!!)。

2.1 源碼工程下載

先在PC虛擬機(jī)定位到nfs服務(wù)目錄,再在目錄中創(chuàng)建存放源碼倉庫的管理目錄:

cd ~/nfsroot
mkdir GitHub
cd GitHub

再通過git工具,在管理目錄內(nèi)克隆遠(yuǎn)程倉庫(需要設(shè)備能對(duì)外網(wǎng)進(jìn)行訪問)

git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-3576.git
wKgZO2geyZyANot7AAF0k2vU6rQ345.png

注:

* 此處可能會(huì)因網(wǎng)絡(luò)原因造成卡頓,請(qǐng)耐心等待。

* 如果實(shí)在要在gitHub網(wǎng)頁上下載,也要把整個(gè)倉庫下載下來,不能單獨(dú)下載本實(shí)例對(duì)應(yīng)的目錄。

2.2 開發(fā)環(huán)境搭建

通過adb shell進(jìn)入板卡開發(fā)環(huán)境,如下圖所示。

wKgZPGgeyZ2AWt8AAADSohVEhNc916.png

通過以下命令,把nfs目錄掛載上nfs服務(wù)器。

mount -t nfs -o nolock : /home/orin-nano/Desktop/nfs/
wKgZO2geyZ2AU3BAAAEcDIcfp0I783.png

2.3 例程編譯

然后定位到nfs的掛載目錄,再在目錄中創(chuàng)建存放源碼倉庫的管理目錄:

cd /home/orin-nano/Desktop/nfs/GitHub

進(jìn)入到對(duì)應(yīng)的例程目錄執(zhí)行編譯操作,具體命令如下所示:

cd EASY-EAI-Toolkit-3576/Demos/common-http/
./build.sh
wKgZPGgeyZ2ADL80AAIvtPJqQ54056.png

2.4 例程運(yùn)行及效果

進(jìn)入Release目錄,執(zhí)行下方命令,運(yùn)行示例程序:

./Release/test-http_server & 
./Release/test-http_client

執(zhí)行效果如下所示。

wKgZO2geyZ2APNShAACKJ6Ng2D0775.png

API的詳細(xì)說明,以及API的調(diào)用(本例程源碼),詳細(xì)信息見下方說明。

3. HTTPS庫函數(shù)說明

本章節(jié)介紹EASY EAI的HTTPS庫函數(shù)的使用方法。

3.1 引用方式

EASY EAI api庫位于本倉庫的easyeai-api目錄中。為方便客戶在本地工程中直接調(diào)用我們的EASY EAI api庫,此處列出工程中需要鏈接的庫以及頭文件等,方便用戶直接添加。

描述 CMake寫法 Makefile寫法
api.cmake ${common_root}/http/api.cmake
頭文件目錄 ${HTTP_INCLUDE_DIRS} -I ../../easyeai-api/common/http
源文件目錄 ${HTTP_SOURCE_DIRS} ../../easyeai-api/common/http
庫文件目錄
庫鏈接參數(shù) ${HTTP_LIBS}

API源代碼路徑為EASY-EAI-Toolkit-3576/easyeai-api/common/http/。用戶可通過源代碼了解接口實(shí)現(xiàn),甚至可對(duì)源碼進(jìn)行修改。

3.2 設(shè)置證書

設(shè)置證書的函數(shù)原型為:

void set_customer_crt(const char *crt_file);

具體介紹如下所示。

函數(shù)名:set_customer_crt()
頭文件 easyeai-api/common/http/https_request.h
輸入?yún)?shù) crt_file:證書所在路徑
返回值
注意事項(xiàng)

3.3 向HTTP/HTTPS服務(wù)器發(fā)送form-data數(shù)據(jù)

3.3.1 清除form_data緩存

清除緩存的函數(shù)原型為:

void clear_multipart();

具體介紹如下所示。

函數(shù)名:clear_multipart()
頭文件 easyeai-api/common/http/https_request.h
輸入?yún)?shù)
返回值
注意事項(xiàng) form-data的緩存只有一份,無論在何處執(zhí)行,都會(huì)把form-data緩存給清空。若在多個(gè)線程執(zhí)行此函數(shù),需注意線程同步問題。

3.3.2 填充form_data緩存

填充緩存的函數(shù)原型如下所示,傳輸?shù)臄?shù)據(jù)以鍵值對(duì)的形式傳輸。

void add_multipart_form_data(const char *key, const char *value);

具體介紹如下所示。

函數(shù)名:add_multipart_form_data()
頭文件 easyeai-api/common/http/https_request.h
輸入?yún)?shù) key:form-data數(shù)據(jù)的鍵名
value:form-data數(shù)據(jù)的內(nèi)容
返回值
注意事項(xiàng) form-data的緩存只有一份,一旦執(zhí)行clear_multipart(),之前添加進(jìn)緩存的form-data數(shù)據(jù)都會(huì)被清空,若在多個(gè)線程執(zhí)行此函數(shù),需要注意線程同步問題。

3.3.3 發(fā)送form-data數(shù)據(jù)

由于HTTP和HTTPS的加密方式有所區(qū)別,故分別定義了兩個(gè)函數(shù),但參數(shù)一致,函數(shù)原型如下所示。

int32_t send_data_to_Http(const char *server, const char *func, char *result, uint32_t result_lenth);
int32_t send_data_to_Https(const char *server, const char *func, char *result, uint32_t result_lenth);

具體介紹如下所示。

HTTP發(fā)送函數(shù):send_data_to_Http()
HTTPS發(fā)送函數(shù):send_data_to_Https()
頭文件 easyeai-api/netProtocol_api/https/https_request.h
輸入?yún)?shù) server:服務(wù)器url
func:方法
result:用于保存HTTP/HTTPS返回的body數(shù)據(jù)
result_lenth:用戶用于給body數(shù)據(jù)分配的最大空間
返回值 -1:失敗
0:成功,函數(shù)內(nèi)部會(huì)調(diào)用clear_multipart()清空緩存
注意事項(xiàng) 接口是對(duì)HTTP/HTTPS POST請(qǐng)求的封裝,會(huì)把form-data的緩存發(fā)送出去,調(diào)用成功后清空form-data緩存,多線程注意線程同步

3.4 向HTTP/HTTPS服務(wù)器發(fā)送json數(shù)據(jù)

由于HTTP和HTTPS的加密方式有所區(qū)別,故分別定義了兩個(gè)函數(shù),但參數(shù)一致,函數(shù)原型如下所示。

int32_t send_json_to_Http(const char *server, const char *func, const char *json, char *result, uint32_t result_length);
int32_t send_json_to_Https(const char *server, const char *func, const char *json, char *result, uint32_t result_length);

具體介紹如下所示。

HTTP發(fā)送函數(shù):send_json_to_Http()
HTTPS發(fā)送函數(shù):send_json_to_Https()
頭文件 easyeai-api/netProtocol_api/https/https_request.h
輸入?yún)?shù) server:服務(wù)器url
func:方法
json:待發(fā)送的json字符串
result:用于保存HTTP/HTTPS返回的body數(shù)據(jù)
result_lenth:用戶用于給body數(shù)據(jù)分配的最大空間
返回值 -1:失敗
0:成功
注意事項(xiàng)

3.5 向HTTP/HTTPS服務(wù)器獲取文件

由于HTTP和HTTPS的加密方式有所區(qū)別,故分別定義了兩個(gè)函數(shù),但參數(shù)一致,函數(shù)原型如下所示。

int32_t get_file_from_https(const char *url, const char *func, const char *filePath);
int32_t get_file_from_http(const char *url, const char *func, const char *filePath);

具體介紹如下所示。

HTTP獲取文件函數(shù):get_file_from_https()
HTTPS獲取文件函數(shù):get_file_from_http()
頭文件 easyeai-api/netProtocol_api/https/https_request.h
輸入?yún)?shù) url:服務(wù)器url路徑
func:方法
filePath:用于存放所獲取文件的本地路徑
返回值 Success
Unknown
Connection
BindIPAddress
Read
Write
ExceedRedirectCount
Canceled
SSLConnection
SSLLoadingCerts
SSLServerVerification
UnsupportedMultipartBoundaryChars
Compression
注意事項(xiàng) 該接口是對(duì)HTTP/HTTPS GET請(qǐng)求的封裝

4. 使用實(shí)例

示例代碼路徑為EASY-EAI-Toolkit-3576/Demos/common-http/ test-http_client.c。

4.1 設(shè)置CRT密鑰文件

設(shè)置密鑰文件操作如下所示。

set_customer_crt("/userdata/customer.crt");

4.2 發(fā)送form_data數(shù)據(jù)

4.2.1 填充數(shù)據(jù)

清空form_data數(shù)據(jù)緩沖區(qū),然后填充form_data緩沖區(qū)數(shù)據(jù)。

clear_multipart();
add_multipart_form_data("name", "gzlmo");
add_multipart_form_data("id", "888888");
add_multipart_form_data("pwd", "123456");

4.2.2 發(fā)送數(shù)據(jù)

發(fā)送操作如下所示。

send_data_to_Http("192.168.3.191:50000", "/add", res, sizeof(res));

4.3 發(fā)送json數(shù)據(jù)

發(fā)送操作如下所示。

send_json_to_Http("192.168.3.191:50000", "/add", "{name : "gzlmo"}", res, sizeof(res));

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9618

    瀏覽量

    87066
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    518

    瀏覽量

    32338
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5432

    瀏覽量

    101227
  • rk3576
    +關(guān)注

    關(guān)注

    1

    文章

    125

    瀏覽量

    497
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于RK3576開發(fā)板的WDT看門狗使用說明

    RK3576開發(fā)板的WDT使用說明
    的頭像 發(fā)表于 05-06 17:15 ?368次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的WDT看門狗使用說明

    基于RK3576開發(fā)板的PCIE固態(tài)硬盤使用說明

    RK3576開發(fā)板的PICE固態(tài)硬盤使用方法
    的頭像 發(fā)表于 05-06 17:33 ?1064次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的PCIE固態(tài)硬盤使用說明

    基于RK3576開發(fā)板的TF卡槽使用說明

    RK3576開發(fā)板使用TF卡槽
    的頭像 發(fā)表于 05-07 09:24 ?439次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的TF卡槽使用說明

    基于RK3576開發(fā)板的PWN使用說明

    RK3576開發(fā)板使用PWN教程及Demo
    的頭像 發(fā)表于 05-07 14:07 ?1024次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的PWN使用說明

    基于RK3576開發(fā)板的RTC使用說明

    文章主要展示RK3576開發(fā)板的RTC信息和快速上手例程
    的頭像 發(fā)表于 05-07 15:04 ?477次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的RTC使用說明

    基于RK3576開發(fā)板的人臉識(shí)別算法

    RK3576開發(fā)板展示人臉識(shí)別算法例程和API說明
    的頭像 發(fā)表于 05-07 16:48 ?894次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的人臉識(shí)別算法

    新品體驗(yàn) | RK3576開發(fā)板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號(hào)的核心與評(píng)估
    的頭像 發(fā)表于 11-01 08:08 ?1615次閱讀
    新品體驗(yàn) | <b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>

    米爾RK3576開發(fā)板特惠活動(dòng)!

    近日,米爾電子發(fā)布基于瑞芯微RK3576核心開發(fā)板RK3576作為國產(chǎn)熱門處理器,其高性能數(shù)據(jù)處理能力、領(lǐng)先的AI智能分析、強(qiáng)大的擴(kuò)展性與兼容性受到廣大
    的頭像 發(fā)表于 11-12 01:00 ?639次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>特惠活動(dòng)!

    敬請(qǐng)期待 | 迅為RK3576開發(fā)板即將發(fā)布

    敬請(qǐng)期待 | 迅為RK3576開發(fā)板即將發(fā)布
    的頭像 發(fā)表于 11-22 15:13 ?469次閱讀
    敬請(qǐng)期待 | 迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>即將發(fā)布

    迅為RK3576開發(fā)板核心與底板接口硬件介紹

    迅為RK3576開發(fā)板核心與底板接口硬件介紹
    的頭像 發(fā)表于 01-14 15:15 ?1119次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    迅為RK3576開發(fā)板Android?多屏顯示

    迅為RK3576開發(fā)板Android?多屏顯示
    的頭像 發(fā)表于 01-16 16:58 ?707次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>Android?多屏顯示

    RK3576開發(fā)板技術(shù)分享 | Weston 配置技巧:定制你的桌面體驗(yàn)!

    RK3576開發(fā)板技術(shù)分享 | Weston 配置技巧:定制你的桌面體驗(yàn)!
    的頭像 發(fā)表于 03-07 10:17 ?419次閱讀
    <b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>技術(shù)分享 | Weston 配置技巧:定制你的桌面體驗(yàn)!

    基于RK3576開發(fā)板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯(lián)盟下的Display工作組指定的DSI(Display Serial Interface)的接口標(biāo)準(zhǔn)。rk3576開發(fā)板使用mipi-dsi教程
    的頭像 發(fā)表于 05-06 16:11 ?162次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的MIPI-DSI使用

    基于RK3576開發(fā)板的揚(yáng)聲器和耳機(jī)使用說明

    RK3576開發(fā)板的揚(yáng)聲器和耳機(jī)使用說明
    的頭像 發(fā)表于 05-06 16:36 ?109次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的揚(yáng)聲器和耳機(jī)使用說明

    基于RK3576開發(fā)板的HDMI-OUT使用說明

    RK3576開發(fā)板的HDMI-OUT使用說明
    的頭像 發(fā)表于 05-06 16:48 ?96次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的HDMI-OUT使用說明
    主站蜘蛛池模板: 一区二区三区无码高清视频 | 不卡视频一区二区 | 午夜在线观看免费观看大全 | 欧美性色黄在线视 | 在线观看免费视频一区 | 欧美尺寸又黑又粗又长 | 2017天天操| 日韩卡1卡2卡三卡四卡二卡免 | 激情综合丁香 | 中国特黄毛片 | 亚洲欧美日本综合 | 午夜免费福利影院 | 26uuu另类欧美亚洲曰本 | 很很鲁在线视频播放影院 | 男女视频在线观看免费 | 韩国午夜精品理论片西瓜 | 一级特黄aaa大片免色 | 黄色aaaa| 超级乱淫视频播放日韩 | 99久久免费精品高清特色大片 | 色妞女女女女女bbbb | 日本不卡一区二区三区在线观看 | 欧美高清milf在线播放 | 欧美三级不卡在线观线看高清 | 91国内在线 | 都市禁忌猎艳风流美妇 | 日本加勒比在线精品视频 | 播放毛片| 日本在线视频一区 | 天天操天天拍 | 亚洲黄视频 | 狂野欧美性色xo影院 | 五月天六月丁香 | 精品无码三级在线观看视频 | 天天躁狠狠躁狠狠躁夜夜躁 | 一区二区三区国模大胆 | 国产免费一级高清淫日本片 | 午夜一级成人 | 五月天精品 | 4虎影院在线观看 | 亚洲精品久久久久午夜三 |