《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于RESTful架構的RSS訂閱服務
基于RESTful架構的RSS訂閱服務
2015年微型機與應用第3期
董袁泉
(沙洲職業工學院,江蘇 張家港 215600)
摘要: 介紹了快速獲取信息和網站內容的最新更新的一種新技術——簡易信息聚合技術(RSS)的基本原理和主要功能;分析了Windows Communication Foundation RESTful架構在資源調用、特定環境下服務集成、數據傳輸等方面的優勢。結合WCF分布式網絡的開發工具,詳細闡述了在.NET平臺下對RSS技術的融合和支持,并通過實例進一步說明.NET平臺對RSS源的解析和實現過程。
關鍵詞: RESTful RSS URI 聚合
Abstract:
Key words :

  摘  要: 介紹了快速獲取信息和網站內容的最新更新的一種新技術——簡易信息聚合技術(RSS)的基本原理和主要功能;分析了Windows Communication Foundation RESTful架構在資源調用、特定環境下服務集成、數據傳輸等方面的優勢。結合WCF分布式網絡的開發工具,詳細闡述了在.NET平臺下對RSS技術的融合和支持,并通過實例進一步說明.NET平臺對RSS源的解析和實現過程。

  關鍵詞: RESTful;RSS;URI;聚合

0 引言

  隨著網絡的發展,作為分布式技術的Web服務越來越多地得到應用。為此,許多應用程序和服務使用SOAP協議,該協議將數據從本機語言格式轉換為應用程序和服務都能夠理解的標準格式(XML)。當客戶端應用程序使用SOAP協議與WCF服務通信時,數據以SOAP包的形式發送給服務器,服務器接收包,對它們進行解析,并解釋存儲在其中的數據。然后服務器處理數據并將結果以SOAP包的形式返回給客戶端應用程序。如果數據量很大,這將影響客戶端和服務器之間通信的速度,還將增加客戶端和服務器上的負載。因此這些類型的服務可能不適合需要頻繁傳輸實時數據的應用程序。在這種情況下,可通過實現RESTful服務使延遲降到最低,該服務使網站可更快地響應用戶請求而不需要考慮信息的安全性。

  REST(Representational State Transfer)是Roy Fielding提出的一個描述互聯系統架構風格的名詞。Web本質上由各種各樣的資源組成,資源由URI唯一標識,瀏覽器將展示出該資源的一種表現方式,或者一種表現狀態。如果用戶在該頁面中定向到指向其他資源的鏈接,則將訪問該資源,并表現出它的狀態,這意味著客戶端應用程序隨著每個資源表現狀態的不同而發生狀態轉移。REST風格的Web Services技術的出現,給推廣和應用Web Services帶來了新的活力。在大數據來回傳輸的交換中,RESTful表現了一定的優勢[1]。以上兩種服務的架構如圖1所示。

001.jpg

1 RESTful服務及其優勢

  1.1 RESTful概述

  Web環境下,在REST架構風格下設計的面向服務的體系結構SOA(Service-Oriented Architecture,SOA)稱為RESTful服務[2],RESTful服務強調的是資源及標識,因此在面向資源整合的集成系統中可以發揮一定的優勢。

  RESTful服務使用HTTP協議與客戶端應用程序通信。HTTP協議從Web服務器檢索網頁并將頁面交付給Web瀏覽器。這不需要將數據序列化和反序列化為標準格式,從而能夠快速響應用戶請求而不影響服務器的性能。

  REST代表表述性狀態轉移。在REST架構中,每一項都稱為一個資源,資源是用統一資源標識符(URI)表示的,URI唯一標識每個資源并提供資源地址。資源可通過鏈接進行訪問,當用戶在瀏覽器中通過URL地址訪問資源時,將返回資源(如sport.html)的表示,該表示將客戶端應用程序置于一種狀態。當用戶單擊資源(如sport.html)中的某個超鏈接時,將返回另一資源表示,新的表示將客戶端應用程序置于另一狀態,更改了先前狀態,通過這種方式,客戶端應用程序的狀態將隨每個資源的表示而更改。

  1.2 RESTful服務的設計原則

  REST架構是針對Web應用而設計的,其目的是降低開發的復雜性,提高系統的可伸縮性。RESTful提出了如下設計準則[3]:

 ?。?)資源抽象:網絡上的所有事物都被抽象為資源(Resource),比如圖片、音樂、視頻、文字、以及服務資源ID。在RESTful服務中,所有數據都以資源的形式表示。例如,某個組織通過其網站出售的產品詳細信息可以以資源的形式表示。每個資源應該具有唯一ID以供標識,這個唯一ID是資源URI。URI表示為:http://ReadME.com/products/product1,當用戶在客戶端應用程序中單擊以鏈接形式顯示的URI時,將向用戶顯示product1產品的詳細信息。

 ?。?)鏈接方法:資源的URI以鏈接的形式顯示。通過使用鏈接,用戶可以查看駐留在不同服務器或計算機上資源的相關信息。當用戶單擊鏈接時,鏈接將用戶帶到應用程序的下一網頁,其中顯示資源表示。這會導致應用程序狀態的更改。這使得應用程序變成動態并使用戶能夠在應用程序中或者在各種應用程序之間導航。

 ?。?)標準方法:RESTful服務使用HTTP協議與客戶端應用程序通信。當用戶在Web瀏覽器的地址欄中輸入URL時,針對URI所指向網頁的請求將傳輸到Web服務器。Web服務器接受請求并將頁面交付給瀏覽器。瀏覽器通過HTTP方法應答網頁的請求。這些方法是標準方法,允許瀏覽器與Web服務器交互。此外,這些方法允許用戶在數據庫服務器中檢索、插入、更新和刪除數據。一些Http方法如下:

  Post:向Web服務器提交要處理的數據。

  Get:請求網頁。

  Put:用于通過Web傳輸文件。

  Delete:用于刪除存儲在數據庫服務器中的數據。

  (4)帶有多種表示的資源:通過開發RESTful服務,可以各種格式(如XML,JSON,.ASPX和純文本)顯示數據,方法是以多種方式表示資源,例如:http://.../product1.xml,http://.../product1.json。在上述URI中,以多種方式表示了資源product1的詳細信息,這使構建在各種平臺上的客戶端應用程序能夠理解和使用RESTful服務發送的數據。

 ?。?)無狀態通信:RESTful服務以無狀態方式以客戶端應用程序通信。一旦用戶請求另一資源,RESTful服務即更改狀態。無狀態通信增加了服務的可伸縮性以同時處理多個客戶端的請求。

  1.3 RESTful服務的特點

  RESTful應用系統是一個面向資源的系統,具有如下特點[4]:

 ?。?)簡明的URI:RESTURI代表資源,其結構由控制器的名稱和資源的id組成,并不包含對資源的動作。

 ?。?)統一接口:REST要求使用統一的接口,統一接口獨立于資源的URI。任何對資源的操作行為都是通過HTTP協議來實現:獲取資源的一個表示用HTTPGET;向一個新的URI發送HTTPPUT或向一個已有URI發送HTTPPOST創建一個新資源;修改已有資源用HTTPPUT;刪除已有資源用HTTPDELETE。

 ?。?)資源可以有多種表示方法:對于控制器的同一個action,可以返回給客戶端html、xml或RSS不同格式的內容,依賴于客戶端的調用方式。

 ?。?)面向CRUD的控制器:所謂CRUD就是Create、Read、Update和Delete的簡寫。每個控制器都對應某個資源的CRUD操作。

 ?。?)更少的代碼和簡單的系統設計。

2 使用RESTful服務的數據格式

  RESTful服務可以用各種數據格式顯示數據,這些格式是使用不同方式(例如XML文檔、JavaScript文件和聚合訂閱源)表示的,要使用RESTful服務,需要了解不同的數據格式。RESTful服務允許以下列格式顯示數據:XML、JSON、RSS、Atom等。

  2.1 XML數據

  XML是用于傳輸駐留在不同位置的數據應用程序的數據格式。當用戶單擊以XML格式顯示數據的鏈接時,將向用戶顯示以標記形式顯示數據的XML文檔。要以XML格式顯示數據,需要編寫以下代碼:

  [WebGet(ResponseFormat=WebMessageFormat.Xml)]

  2.2 JSON數據

  JavaScript對象表示法(JSON)是輕量級數據交換格式,用于表示對象和數組的一種基于文本的人可閱讀的格式。JSON格式主要由啟用了AJAX的Web應用程序用于通過網絡傳輸數據。當用戶單擊JSON格式顯示數據的鏈接時,將向用戶顯示用于數據的JSON文檔。要以JSON格式顯示數據,需要編寫以下代碼:

  [WebGet(ResponseFormat=WebMessageFormat.Json)]

  2.3 RSS數據

  簡易信息聚合(RSS)是一種Web訂閱源標準,使用該標準可以以標準化格式頻繁發布更新內容,例如博客、新聞文章、音頻和視頻。它包含全文本或摘要文本。除了文本外,它還包含諸如發布日期和作者之類的元數據。可以使用<rss version=”2.0”>標記用于顯示RSS格式的數據,<channel>元素表示數據源。<channel>元素包含<title>、<link>和<description>元素,這些元素描述數據源。每個RSS的開始為XML版本聲明,接下來是<rss version=2.0>、<channel>、<title>、<description>等標簽,分別為RSS版本說明、頻道聲明、頻道標題、頻道描述[5]。

  在頻道標簽(<channel>)里又包含項目(<item>)列表,每個項目一般包含三個信息:標題、說明、鏈接,分別在<title>、<description>、<link>標簽描述。還允許其他的信息,例如日期(<pubDate>)、創建者的名字(<author>)等。上述的<channel>、<item>兩層結構即構成完整的RSS源。

  2.4 Atom數據

  Atom是在Web上以訂閱源的形式顯示數據的另一種Web訂閱源標準。Atom格式大多用于Web內容。<feed xmlns=”http://www.w2.org/2005/Atom”>標記用于顯示Atom訂閱源格式的數據。RSS和Atom是在網站上顯示或發布最新新聞或更新信息的最常用格式,這使用戶可以查看關于所需特定主題的最新消息??墒褂镁酆显诰W站上發布內容。聚合是在網站上廣播內容的方式,要在服務中實現聚合,WCF提供了聚合API,通過這些API包含各種類,可以以RSS或Atom格式顯示內容。

3 .NET平臺下實現RESTful服務的RSS數據的聚合

  聚合RSS(也叫聚合內容,Really Simple Syndication)是在線共享內容的一種簡易方式。通常在時效性比較強的內容上使用RSS訂閱能更快速獲取信息,網站提供RSS輸出,有利于讓用戶獲取網站內容的最新更新。

  在聚合中,數據通過Web訂閱源顯示,該訂閱源包含一組標準特性(例如標題、URL和描述)。這些特性描述Web訂閱源將在Web上顯示的內容。

  聚合架構提供聚合API,能夠在Web上顯示Web訂閱源。聚合API是包含訂閱源數據的用戶界面,也可以使用聚合API執行各種任務,例如查詢聚合詳細信息,聚合API提供各種類,能夠以RSS或ATOM格式顯示Web訂閱源,表1列出了.NET提供的一些聚合API類。

003.jpg

  在WCF中,Web訂閱源是以RSS或Atom格式返回訂閱源的方法。當客戶端應用程序實現聚合的RESTful服務時,會以RSS或Atom格式將Web訂閱源返回給客戶端應用程序。

4 RESTful架構下RSS訂閱服務的實現

  本文以一個汽車信息查詢服務網站為例簡述汽車信息查詢訂閱服務的實現過程。汽車分銷商要頻繁訪問各種汽車型號的詳細信息,由于數據庫連接問題,分銷商常常無法訪問詳細信息。因此,創建一個RESTful服務來確保最佳性能并在服務器應用程序中托管服務,在服務中實現聚合以便不依賴于數據庫服務器就可提供各種汽車型號的詳細信息。

  在使用面向資源的體系架構(Resource-Oriented Architecture,ROA)進行設計時,需要把真實的應用需求轉化成ROA中的資源,遵循以下的步驟:

 ?。?)對需求的數據集進行分析。

 ?。?)把數據集映射為ROA中的資源。

 ?。?)使用URI命名每一資源。

 ?。?)對ROA中的每個資源設計其表述性狀態Representational。

 ?。?)用hypermedia links表述資源間的聯系。

  4.1 托管服務端應用程序

  在服務端應用程序中主要包括一些ASPX頁面,如M001.aspx、M002.aspx、M003.aspx等,其中包含了各種汽車型號的詳細信息,這些頁面都是比較簡單的動態網頁,實現較為簡單,此處不再贅述。然后在IIS中新建虛擬目錄并定義一個別名如QueryCarDetailsClientApp,把汽車信息發布到IIS中。

  4.2 創建服務器應用程序

  開發工具采用VS2010,新建控制臺應用程序RestFulSevice,然后在項目中添加引用,選擇組件System.ServiceModel和System.ServiceModel.Web。以下給出創建Web訂閱源并在RESTful服務中實現聚合的主要代碼:

  [ServiceContract]

  public interface IService

  {

  [OperationContract]

  [WebGet]

  Rss20FeedFormatter GetCarDetails();

  }

  public class Service:IService

  {

  public Rss20FeedFormatter GetCarDetails()

  //實現RSS2.0格式的類

  {

  SyndicationFeed feed=new SyndicationFeed("Luxury Drive-Car Details","Car Details", null);

  SyndicationItem item1=new SyndicationItem("Model One","This is the content for Model One",new Uri("http://192.168.1.101/Query CarDetailsClientApp/M001.aspx"),"ItemOneID",DateTime.Now);

  …//item2,item3的代碼與item1類似,此處不再贅述

  List<SyndicationItem>items=new List<SyndicationItem>();

  items.Add(item1);

  ……

  feed.Items=items;

  return new Rss20FeedFormatter(feed);}

  }

  創建Web訂閱源之后,需要編寫以下代碼段在Web上顯示訂閱源,在Main()方法中輸入以下代碼:

  Uri baseAddress=new Uri("http://192.168.1.101:8000/Service");

  WebServiceHost svcHost=new WebServiceHost(typeof(Service),baseAddress);

  try

  {   svcHost.Open();

  XmlReader reader=XmlReader.Create("http://192.168.1.101:8000/Service/GetCarDetails");

  SyndicationFeed feed=SyndicationFeed.

  Load(reader);

  foreach(SyndicationItem item in feed.

  Items)

  { Console.WriteLine("Title:{0}",

  item.Title.Text);

  Console.WriteLine("Summary:{0}",

 ?。ǎ═extSyndicationContent)item.Summary).Text); }

  Console.WriteLine("Press<Enter>to

  quit...");

  Console.ReadLine();

  svcHost.Close();}

  ……

  保存并編譯RestFulService項目。

  4.3 在客戶端執行并驗證服務器應用程序

  執行RestFulService應用程序,瀏覽者在客戶端借助于支持RSS的閱讀軟件(IE7.0以上版本的瀏覽器)打開這個RSS源鏈接(http://192.168.1.101:8000/Service/GetCarDetails),即能訂閱網站提供的RSS源。圖2為IE9.0瀏覽器打開RSS源的界面。單擊Model One鏈接,將出現汽車M001詳細頁面。

002.jpg

5 結束語

  典型的基于SOAP的Web服務以操作為中心,每個操作接受XML文檔作為輸入,提供XML文檔作為輸出。從本質上講,它們是RPC風格的。而在遵循RESTFul原則的ROA應用中,服務是以資源為中心的,對每個資源的操作都是標準化的HTTP方法[6]??梢钥吹?,基于RESTFul構建的系統其擴展能力要強于SOAP,并且伴隨著Web Site as Web Services發展的趨勢,基于RESTFul架構的設計和實現,具有簡單性和強擴展性,有理由相信,RESTFul將會成為Web服務的一個重要應用。

  在服務器性能越來越好的今天,網站服務器已完全能夠高速生成動態RSS源。RSS訂閱提供的是一種經濟、實用的Web訂閱源標準,已被越來越多的網站采用。使用RSS訂閱源可以快速獲取信息,網站提供RSS輸出,有利于用戶獲得網站內容的最新更新。但是本系統提供的RESTful服務沒有考慮到信息授權、安全傳輸和統一檢索以及動態生成RSS源等問題,這將有待更進一步的研究。

參考文獻

  [1] 馬青霞,孫梅.基于RESTFUL服務的分布式遺傳算法[J].計算機工程,2011,37(24):164-166.

  [2] 馬青霞,高立輝.利用RESTFUL實現面向資源的服務集成[J].金陵科技學院學報,2012,28(4):27-31.

  [3] 李斌.基于Ruby on Rails的鐵路旅客傷亡管理系統的設計與實現[D].成都:西南交通大學,2010.

  [4] 潘冰.面向資源的RESTful Web應用研究[J].微計算機應用,2010,31(7):38-43.

  [5] 張冬平,郭東琿.采用C#實現RSS訂閱服務[J].計算機與現代化,2011(3):140-142.

  [6] 葉輝.面向電子商務的混搭應用技術研究[D].北京:北京郵電大學,2009.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美国产日韩一区二区三区| 国产精品天天看| 欧美高清视频一区| 一区二区三区久久精品| 亚洲夜间福利| 欧美日韩一二三四五区| 欧美日韩二区三区| 亚洲一区二区黄色| 亚洲在线不卡| 欧美日韩精品在线| 在线亚洲+欧美+日本专区| 亚洲午夜激情免费视频| 亚洲一级电影| 国产精品成人午夜| 久久久久久9999| 美女精品视频一区| 免费在线观看成人av| 久久综合五月天婷婷伊人| 夜夜爽av福利精品导航| 激情成人av在线| 一本久道久久综合狠狠爱| 激情国产一区| 在线播放中文一区| 国产精品国产福利国产秒拍| 嫩草成人www欧美| 久久久久天天天天| 美国十次成人| 欧美一区二区三区视频| 暖暖成人免费视频| 国产精品裸体一区二区三区| 激情成人在线视频| 国产一区二区三区久久| 99在线精品视频在线观看| 国产日韩高清一区二区三区在线| 亚洲午夜未删减在线观看| 久久婷婷国产麻豆91天堂| 午夜精品国产更新| 国产在线视频不卡二| 国产欧美日韩另类视频免费观看| 亚洲区国产区| 欧美精品一区二区三区在线看午夜| 美女精品视频一区| 欧美日韩在线一区二区三区| 国产精品美女一区二区| 亚洲欧美激情一区| 国产日韩欧美中文在线播放| 国产精品一区二区在线| 欧美电影专区| 欧美视频导航| 欧美日韩日韩| 亚洲一区二区免费在线| 狠狠色综合网站久久久久久久| 亚洲精品国产精品乱码不99按摩| 久久精视频免费在线久久完整在线看| 一本一道久久综合狠狠老精东影业| 嫩模写真一区二区三区三州| 欧美福利一区二区| 在线观看一区二区视频| 欧美一区二区三区久久精品茉莉花| 亚洲精品视频免费在线观看| 欧美一区二区在线视频| 欧美激情中文不卡| 欧美日韩国产电影| 欧美日韩国产在线| 欧美亚洲一区二区三区| 国产精品永久| 伊人影院久久| 老鸭窝91久久精品色噜噜导演| 伊人男人综合视频网| 国产精品免费区二区三区观看| 狠狠狠色丁香婷婷综合久久五月| 国产精品日韩在线播放| 亚洲三级毛片| 国产精品九色蝌蚪自拍| 国产专区欧美专区| 欧美日韩亚洲网| 亚洲午夜在线视频| 久久久久久一区| 亚洲精品乱码久久久久久按摩观| 亚洲毛片网站| 欧美日韩岛国| 亚洲精品之草原avav久久| 一区二区三区久久| 国产精品视频第一区| 欧美视频一区二区三区在线观看| 午夜精彩视频在线观看不卡| 日韩一级裸体免费视频| 亚洲一区在线看| 亚洲第一视频网站| 美女精品国产| 欧美视频专区一二在线观看| 亚洲视频二区| 欧美一区二区在线免费观看| 18成人免费观看视频| 夜夜爽99久久国产综合精品女不卡| 亚洲欧美综合另类中字| 国产日产亚洲精品| 久久天天躁夜夜躁狠狠躁2022| 夜夜嗨av一区二区三区四区| 亚洲福利视频一区二区| 欧美日韩在线视频观看| 欧美三级欧美一级| 极品少妇一区二区三区| 亚洲国产成人91精品| 亚洲一区二区三区777| 国产精品影院在线观看| 国产一区在线免费观看| 国产精品高潮视频| 久久久久久9| 久久精品免费电影| 性欧美video另类hd性玩具| 欧美在线视频一区二区三区| 国产精品美女999| 亚洲欧美国产77777| 91久久中文字幕| 国产精品成人免费| 国产精品系列在线播放| 国产精品xxx在线观看www| 亚洲精品偷拍| 欧美日本不卡视频| 亚洲欧美日韩网| 一区二区三区四区国产精品| 国产精品一二三| 国产在线高清精品| 欧美日韩另类视频| 国产精品美女www爽爽爽视频| 国产日韩欧美在线观看| 午夜精品久久久久久久男人的天堂| 亚洲一线二线三线久久久| 久久黄色级2电影| 国内外成人免费激情在线视频| 国产喷白浆一区二区三区| 性久久久久久久久久久久| 99re这里只有精品6| 蜜桃久久精品乱码一区二区| 久久免费的精品国产v∧| 国产精品户外野外| 亚洲美女在线视频| 亚洲欧美日韩系列| 男女av一区三区二区色多| 国产欧美视频在线观看| 亚洲第一页中文字幕| 欧美aaaaaaaa牛牛影院| 在线亚洲一区二区| 国产精品v亚洲精品v日韩精品| 国产精品美女www爽爽爽视频| 精品va天堂亚洲国产| 亚洲欧美日韩综合| 国产精品社区| 亚洲一区亚洲二区| 在线观看三级视频欧美| 欧美一区二区福利在线| 亚洲一区国产一区| 激情成人综合| 国产欧美日韩精品一区| 久久超碰97中文字幕| 亚洲图中文字幕| 伊人久久综合97精品| 亚洲高清精品中出| 亚洲二区在线观看| 亚洲一二三区在线| 久久久亚洲人| 伊人狠狠色丁香综合尤物| 久久九九久精品国产免费直播| 久久精品91久久久久久再现| 中日韩高清电影网| 国产女人aaa级久久久级| 国产精品成人一区二区艾草| 欧美日韩国产综合视频在线观看| 麻豆九一精品爱看视频在线观看免费| 欧美人成网站| 亚洲欧美另类在线| 久久精品久久综合| 欧美综合国产精品久久丁香| 在线播放国产一区中文字幕剧情欧美| 久久精品亚洲一区二区| 欧美激情久久久| 99成人免费视频| 亚洲影视九九影院在线观看| 亚洲日本在线观看| 国产精品99久久久久久久女警| 免费亚洲电影| 性xx色xx综合久久久xx| 亚洲欧美日韩精品久久久久| 亚洲欧美日韩精品一区二区| 久久综合伊人| 久久久久久久久岛国免费| 久久爱91午夜羞羞| 欧美精品成人在线| 欧美视频日韩视频| 国外成人网址| 欧美激情麻豆| 国产女同一区二区| 亚洲丝袜av一区| 欧美日韩1080p| 91久久黄色| 午夜精品理论片| 亚洲午夜成aⅴ人片| 国产精品午夜春色av| 国产日韩欧美综合一区| 激情久久五月天| 国产综合色一区二区三区| 亚洲综合日韩中文字幕v在线| 国产精品免费aⅴ片在线观看| 亚洲三级视频在线观看| 午夜在线观看免费一区| 亚洲免费观看| 欧美国产精品日韩| 美玉足脚交一区二区三区图片| 国产精品久久久久久久久久妞妞| 亚洲日本免费电影| 国产午夜精品美女视频明星a级| 久久久国产精彩视频美女艺术照福利| 午夜精品久久久久99热蜜桃导演| 国产欧美日韩麻豆91| 国产精品高精视频免费| 欧美午夜三级| 欧美视频一区| 亚洲精品久久久久久久久| 激情综合中文娱乐网| 亚洲成人在线网站| 亚洲精品乱码久久久久久蜜桃麻豆| 99视频在线精品国自产拍免费观看| 激情五月***国产精品| 亚洲国产另类久久精品| 亚洲黑丝在线| 伊人精品成人久久综合软件| 欧美有码视频| 国产一区二区三区久久久久久久久| 亚洲欧美日韩一区二区三区在线| 亚洲一区在线直播| 欧美午夜精品一区| 国产午夜亚洲精品羞羞网站| 日韩网站在线| 一本久久精品一区二区| 国产精品一区久久久| 欧美一区二区三区在线免费观看| 韩国av一区二区三区| 亚洲第一视频| 欧美在线影院在线视频| 欧美高清你懂得| 99视频国产精品免费观看| 欧美顶级艳妇交换群宴| 亚洲欧美激情精品一区二区| 亚洲视频在线观看一区| 欧美不卡视频一区发布| 欧美大片第1页| 久久久久久久尹人综合网亚洲| 亚洲欧美日韩精品一区二区| 国产亚洲第一区| 久久综合一区| 老司机免费视频一区二区| 亚洲视频在线观看| 欧美 日韩 国产精品免费观看| 久久精品国产一区二区三区| 欧美精品www| 亚洲免费观看高清完整版在线观看熊| 久久人人97超碰人人澡爱香蕉| 欧美刺激性大交免费视频| 欧美不卡视频| 久久久久国产精品www| 久久婷婷av| 欧美高清视频一区二区| 韩国在线视频一区| 日韩一级黄色大片| 国产欧美在线视频| 欧美成人乱码一区二区三区| 国产伦一区二区三区色一情| 在线成人性视频| 欧美日韩高清一区| 99国产精品一区| 国产精品xvideos88| 欧美激情精品久久久久| 男女激情久久| 欧美母乳在线| 久久精彩视频| 麻豆成人在线| 欧美一级夜夜爽| 亚洲清纯自拍| 永久久久久久| 亚洲一区二区三区视频| 狂野欧美一区| 欧美日本精品一区二区三区| 一区二区精品国产| 欧美精品在线看| 久久久久成人精品免费播放动漫| 韩国v欧美v日本v亚洲v| 亚洲一区二区三区中文字幕在线| 欧美自拍偷拍| 99亚洲一区二区| 欧美日本网站| 久久久久成人网| 久久一二三四| 亚洲图片欧洲图片日韩av| 久久国产精品高清| 欧美国产日产韩国视频| 亚洲欧美视频| 国产欧美日韩综合一区在线观看| 亚洲国产高清自拍| 国产亚洲精品激情久久| 久久婷婷国产麻豆91天堂| 蜜臀va亚洲va欧美va天堂| 欧美啪啪一区| 久久视频免费观看| 一区二区在线视频播放| 国产精品影院在线观看| 久久婷婷麻豆| 欧美精品综合| 欧美极品在线观看| 亚洲欧美中文在线视频| 欧美日韩一区成人| 亚洲国产欧洲综合997久久| 国产精品亚洲视频| 久久全国免费视频| 亚洲韩国青草视频| 欧美视频在线观看免费| 国产欧美精品在线| 在线精品亚洲| 日韩视频在线一区| 欧美日本成人| 伊人成年综合电影网| 国产资源精品在线观看| 黄网站免费久久| 欧美国产精品劲爆| 欧美午夜影院| 国产精品稀缺呦系列在线| 99re这里只有精品6| 欧美一区91|