日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dotnet Core IHttpClientFactory深度研究

發布時間:2023/12/4 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dotnet Core IHttpClientFactory深度研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天,我們深度研究一下IHttpClientFactory。

?

一、前言

最早,我們是在Dotnet Framework中接觸到HttpClient。

HttpClient給我們提供了與HTTP交互的基本方式。但這個HttpClient在大量頻繁使用時,也會給我們拋出兩個大坑:一方面,如果我們頻繁創建和釋放HttpClient實例,會導致Socket套接字資源耗盡,原因是因為Socket關閉后的TIME_WAIT時間。這個問題不展開說,如果需要可以去查TCP的生命周期。而另一方面,如果我們創建一個HttpClient單例,那當被訪問的HTTP的DNS記錄發生改變時,會拋出異常,因為HttpClient并不會允許這種改變。

現在,對于這個內容,有了更優的解決方案。

從Dotnet Core 2.1開始,框架提供了一個新的內容:IHttpClientFactory。

IHttpClientFactory用來創建HTTP交互的HttpClient實例。它通過將HttpClient的管理和用于發送內容的HttpMessageHandler鏈分離出來,來解決上面提到的兩個問題。這里面,重要的是管理管道終端HttpClientHandler的生命周期,而這個就是實際連接的處理程序。

除此之外,IHttpClientFactory還可以使用IHttpClientBuilder方便地來定制HttpClient和內容處理管道,通過前置配置創建出的HttpClient,實現諸如設置基地址或添加HTTP頭等操作。

先來看一個簡單的例子:

public?void?ConfigureServices(IServiceCollection?services) {services.AddHttpClient("WangPlus",?c?=>{c.BaseAddress?=?new?Uri("https://github.com/humornif");}).ConfigureHttpClient(c?=>{c.DefaultRequestHeaders.Add("Accept",?"application/vnd.github.v3+json");c.DefaultRequestHeaders.Add("User-Agent",?"HttpClientFactory-Sample");}); }

在這個例子中,當調用ConfigureHttpClient()或AddHttpMessageHandler()來配置HttpClient時,實際上是在向IOptions的實例HttpClientFactoryOptions添加配置。這個方法提供了非常多的配置選項,具體可以去看微軟的文檔,這兒不多說。

?

在類中使用IHttpClientFactory時,也是同樣的方式:創建一個IHttpClientFactory的單例實例,然后調用CreateClient(name)創建一個具有名稱WangPlus的HttpClient。

看下面的例子:

public?class?MyService {private?readonly?IHttpClientFactory?_factory;public?MyService(IHttpClientFactory?factory){_factory?=?factory;}public?async?Task?DoSomething(){HttpClient?client?=?_factory.CreateClient("WangPlus");} }

用法很簡單。

?

下面,我們會針對CreateClient()進行剖析,來深入理解IHttpClientFactory背后的內容。

二、HttpClient & HttpMessageHandler的創建過程

CreateClient()方法是與IHttpClientFactory交互的主要方法。

看一下CreateClient()的代碼實現:

private?readonly?IOptionsMonitor<HttpClientFactoryOptions>?_optionsMonitorpublic?HttpClient?CreateClient(string?name) {HttpMessageHandler?handler?=?CreateHandler(name);var?client?=?new?HttpClient(handler,?disposeHandler:?false);HttpClientFactoryOptions?options?=?_optionsMonitor.Get(name);for?(int?i?=?0;?i?<?options.HttpClientActions.Count;?i++){options.HttpClientActions[i](client);}return?client; }

代碼看上去很簡單。首先通過CreateHandler()創建了一個HttpMessageHandler的處理管道,并傳入要創建的HttpClient的名稱。

有了這個處理管道,就可以創建HttpClient并傳遞給處理管道。這兒需要注意的是disposeHandler:false,這個參數用來保證當我們釋放HttpClient的時候,處理管理不會被釋放掉,因為IHttpClientFactory會自己完成這個管道的處理。

然后,從IOptionsMonitor的實例中獲取已命名的客戶機的HttpClientFactoryOptions。它來自Startup.ConfigureServices()中添加的HttpClient配置函數,并設置了BaseAddress和Header等內容。

最后,將HttpClient返回給調用者。

?

理解了這個內容,下面我們來看看CreateHandler(name)方法,研究一下HttpMessageHandler管道是如何創建的。

readonly?ConcurrentDictionary<string,?Lazy<ActiveHandlerTrackingEntry>>?_activeHandlers;;readonly?Func<string,?Lazy<ActiveHandlerTrackingEntry>>?_entryFactory?=?(name)?=>{return?new?Lazy<ActiveHandlerTrackingEntry>(()?=>{return?CreateHandlerEntry(name);},?LazyThreadSafetyMode.ExecutionAndPublication);};public?HttpMessageHandler?CreateHandler(string?name) {ActiveHandlerTrackingEntry?entry?=?_activeHandlers.GetOrAdd(name,?_entryFactory).Value;entry.StartExpiryTimer(_expiryCallback);return?entry.Handler; }

看這段代碼:CreateHandler()做了兩件事:

  • 創建或獲取ActiveHandlerTrackingEntry;

  • 開始一個計時器。

  • _activeHandlers是一個ConcurrentDictionary<>,里面保存的是HttpClient的名稱(例如上面代碼中的WangPlus)。這里使用Lazy<>是一個使GetOrAdd()方法保持線程安全的技巧。實際創建處理管道的工作在CreateHandlerEntry中,它創建了一個ActiveHandlerTrackingEntry。

    ActiveHandlerTrackingEntry是一個不可變的對象,包含HttpMessageHandler和IServiceScope注入。此外,它還包含一個與StartExpiryTimer()一起使用的內部計時器,用于在計時器過期時調用回調函數。

    看一下ActiveHandlerTrackingEntry的定義:

    internal?class?ActiveHandlerTrackingEntry {public?LifetimeTrackingHttpMessageHandler?Handler?{?get;?private?set;?}public?TimeSpan?Lifetime?{?get;?}public?string?Name?{?get;?}public?IServiceScope?Scope?{?get;?}public?void?StartExpiryTimer(TimerCallback?callback){//?Starts?the?internal?timer//?Executes?the?callback?after?Lifetime?has?expired.//?If?the?timer?has?already?started,?is?noop} }

    因此CreateHandler方法要么創建一個新的ActiveHandlerTrackingEntry,要么從字典中檢索條目,然后啟動計時器。

    ?

    下一節,我們來看看CreateHandlerEntry()方法如何創建ActiveHandlerTrackingEntry實例。

    三、在CreateHandlerEntry中創建和跟蹤HttpMessageHandler

    CreateHandlerEntry方法是創建HttpClient處理管道的地方。

    這個部分代碼有點復雜,我們簡化一下,以研究過程為主:

    private?readonly?IServiceProvider?_services;private?readonly?IHttpMessageHandlerBuilderFilter[]?_filters;private?ActiveHandlerTrackingEntry?CreateHandlerEntry(string?name) {IServiceScope?scope?=?_services.CreateScope();?IServiceProvider?services?=?scope.ServiceProvider;HttpClientFactoryOptions?options?=?_optionsMonitor.Get(name);HttpMessageHandlerBuilder?builder?=?services.GetRequiredService<HttpMessageHandlerBuilder>();builder.Name?=?name;Action<HttpMessageHandlerBuilder>?configure?=?Configure;for?(int?i?=?_filters.Length?-?1;?i?>=?0;?i--){configure?=?_filters[i].Configure(configure);}configure(builder);var?handler?=?new?LifetimeTrackingHttpMessageHandler(builder.Build());return?new?ActiveHandlerTrackingEntry(name,?handler,?scope,?options.HandlerLifetime);void?Configure(HttpMessageHandlerBuilder?b){for?(int?i?=?0;?i?<?options.HttpMessageHandlerBuilderActions.Count;?i++){options.HttpMessageHandlerBuilderActions[i](b);}} }

    先用根DI容器創建一個IServiceScope,從關聯的IServiceProvider中獲取關聯的服務,再從HttpClientFactoryOptions中找到對應名稱的HttpClient和它的配置。

    從容器中查找的下一項是HttpMessageHandlerBuilder,默認值是DefaultHttpMessageHandlerBuilder,這個值通過創建一個主處理程序(負責建立Socket套接字和發送請求的HttpClientHandler)來構建處理管道。我們可以通過添加附加的委托來包裝這個主處理程序,來為請求和響應創建自定義管理。

    ?

    附加的委托DelegatingHandlers類似于Core的中間件管道:

  • Configure()根據Startup.ConfigureServices()提供的配置構建DelegatingHandlers管道;

  • IHttpMessageHandlerBuilderFilter是注入到IHttpClientFactory構造函數中的過濾器,用于在委托處理管道中添加額外的處理程序。

  • ?

    IHttpMessageHandlerBuilderFilter類似于IStartupFilters,默認注冊的是LoggingHttpMessageHandlerBuilderFilter。這個過濾器向委托管道添加了兩個額外的處理程序:

  • 管道開始位置的LoggingScopeHttpMessageHandler,會啟動一個新的日志Scope;

  • 管道末端的LoggingHttpMessageHandler,在請求被發送到主HttpClientHandler之前,記錄有關請求和響應的日志;

  • ?

    最后,整個管道被包裝在一個LifetimeTrackingHttpMessageHandler中。管道處理完成后,將與用于創建它的IServiceScope一起保存在一個新的ActiveHandlerTrackingEntry實例中,并給定HttpClientFactoryOptions中定義的生存期(默認為兩分鐘)。

    該條目返回給調用者(CreateHandler()方法),添加到處理程序的ConcurrentDictionary<>中,添加到新的HttpClient實例中(在CreateClient()方法中),并返回給原始調用者。

    在接下來的生存期(兩分鐘)內,每當您調用CreateClient()時,您將獲得一個新的HttpClient實例,但是它具有與最初創建時相同的處理程序管道。

    每個命名或類型化的HttpClient都有自己的消息處理程序管道。例如,名稱為WangPlus的兩個HttpClient實例將擁有相同的處理程序鏈,但名為api的HttpClient將擁有不同的處理程序鏈。

    ?

    下一節,我們研究下計時器過期后的清理處理。

    三、過期清理

    以默認時間來說,兩分鐘后,存儲在ActiveHandlerTrackingEntry中的計時器將過期,并觸發StartExpiryTimer()的回調方法ExpiryTimer_Tick()。

    ExpiryTimer_Tick負責從ConcurrentDictionary<>池中刪除處理程序記錄,并將其添加到過期處理程序隊列中:

    readonly?ConcurrentQueue<ExpiredHandlerTrackingEntry>?_expiredHandlers;internal?void?ExpiryTimer_Tick(object?state) {var?active?=?(ActiveHandlerTrackingEntry)state;_activeHandlers.TryRemove(active.Name,?out?Lazy<ActiveHandlerTrackingEntry>?found);var?expired?=?new?ExpiredHandlerTrackingEntry(active);_expiredHandlers.Enqueue(expired);StartCleanupTimer(); }

    當一個處理程序從_activeHandlers集合中刪除后,當調用CreateClient()時,它將不再與新的HttpClient一起分發,但會保持在內存存,直到引用此處理程序的所有HttpClient實例全部被清除后,IHttpClientFactory才會最終釋放這個處理程序管道。

    ?

    IHttpClientFactory使用LifetimeTrackingHttpMessageHandler和ExpiredHandlerTrackingEntry來跟蹤處理程序是否不再被引用。

    看下面的代碼:

    internal?class?ExpiredHandlerTrackingEntry {private?readonly?WeakReference?_livenessTracker;public?ExpiredHandlerTrackingEntry(ActiveHandlerTrackingEntry?other){Name?=?other.Name;Scope?=?other.Scope;_livenessTracker?=?new?WeakReference(other.Handler);InnerHandler?=?other.Handler.InnerHandler;}public?bool?CanDispose?=>?!_livenessTracker.IsAlive;public?HttpMessageHandler?InnerHandler?{?get;?}public?string?Name?{?get;?}public?IServiceScope?Scope?{?get;?} }

    根據這段代碼,ExpiredHandlerTrackingEntry創建了對LifetimeTrackingHttpMessageHandler的弱引用。根據上一節所寫的,LifetimeTrackingHttpMessageHandler是管道中的“最外層”處理程序,因此它是HttpClient直接引用的處理程序。

    對LifetimeTrackingHttpMessageHandler使用WeakReference意味著對管道中最外層處理程序的直接引用只有在HttpClient中。一旦垃圾收集器收集了所有這些HttpClient,LifetimeTrackingHttpMessageHandler將沒有引用,因此也將被釋放。ExpiredHandlerTrackingEntry可以通過WeakReference.IsAlive檢測到。

    在將一個記錄添加到_expiredHandlers隊列之后,StartCleanupTimer()將啟動一個計時器,該計時器將在10秒后觸發。觸發后調用CleanupTimer_Tick()方法,檢查是否對處理程序的所有引用都已過期。如果是,處理程序和IServiceScope將被釋放。如果沒有,它們被添加回隊列,清理計時器再次啟動:

    internal?void?CleanupTimer_Tick() {StopCleanupTimer();int?initialCount?=?_expiredHandlers.Count;for?(int?i?=?0;?i?<?initialCount;?i++){_expiredHandlers.TryDequeue(out?ExpiredHandlerTrackingEntry?entry);if?(entry.CanDispose){try{entry.InnerHandler.Dispose();entry.Scope?.Dispose();}catch?(Exception?ex){}}else{_expiredHandlers.Enqueue(entry);}}if?(_expiredHandlers.Count?>?0){StartCleanupTimer();} }

    為了看清代碼的流程,這個代碼我簡單了。原始的代碼中還有日志記錄和線程鎖相關的內容。

    這個方法比較簡單:遍歷ExpiredHandlerTrackingEntry記錄,并檢查是否刪除了對LifetimeTrackingHttpMessageHandler處理程序的所有引用。如果有,處理程序和IServiceScope就會被釋放。

    如果仍然有對任何LifetimeTrackingHttpMessageHandler處理程序的活動引用,則將條目放回隊列,并再次啟動清理計時器。

    四、總結

    如果你看到了這兒,那說明你還是很有耐心的。

    這篇文章是一個對源代碼的研究,能夠幫我們理解IHttpClientFactory的運行方式,以及它是以什么樣的方式填補了舊的HttpClient的坑。

    有些時候,看看源代碼,還是很有益處的。

    喜歡就來個三連,讓更多人因你而受益

    總結

    以上是生活随笔為你收集整理的Dotnet Core IHttpClientFactory深度研究的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久av观看 | 四虎永久国产精品 | 免费看成人片 | 色多多污污在线观看 | 国产色视频一区二区三区qq号 | 日韩激情片在线观看 | 一区二区三区在线电影 | 五月天婷婷视频 | 麻豆视频网址 | 久久久久久久久网站 | 色五月色开心色婷婷色丁香 | 久久久久久高潮国产精品视 | 欧美日韩国产精品一区二区亚洲 | 久久久久中文字幕 | 激情久久综合网 | 99免费看片 | 99精品一级欧美片免费播放 | 免费网址在线播放 | 国产免费又黄又爽 | 国产精品专区h在线观看 | 国产综合在线观看视频 | 成人a级黄色片 | 五月婷婷丁香六月 | 亚洲婷久久| 国产福利精品视频 | 免费视频二区 | 国内精品国产三级国产aⅴ久 | 中文字幕一区二区三区四区视频 | 婷婷久久国产 | 国产精品日韩在线播放 | 在线观看一级 | 一区二区网 | jizz欧美性9| 日韩一级片观看 | 成人sm另类专区 | 久久婷婷网 | 欧美日本国产在线观看 | 99精品视频免费全部在线 | 欧美日韩视频在线观看免费 | 开心丁香婷婷深爱五月 | 欧美日韩精品久久久 | 97精品久久人人爽人人爽 | 欧美a性| 黄色官网在线观看 | 精品国产伦一区二区三区观看说明 | 国产一二区视频 | 精品国产成人在线影院 | 国产主播大尺度精品福利免费 | 91丨精品丨蝌蚪丨白丝jk | 九色91福利 | 九九久久免费视频 | 国产超碰在线观看 | 色狠狠狠| 午夜丰满寂寞少妇精品 | 国产特级毛片 | 午夜三级福利 | 日韩一级片网址 | 中文字幕在线观看一区二区 | 久久久久欧美精品 | 国产精品18久久久久vr手机版特色 | 国产美女精品视频免费观看 | 亚洲人成人天堂h久久 | 精品视频中文字幕 | 在线免费色 | 亚洲国产精品久久久 | 国产精品免费看久久久8精臀av | 中文字幕免费观看 | 久久老司机精品视频 | 国产色在线观看 | 国产自产在线视频 | 国产精品久久久久久久久软件 | 国内精品久久久久久 | 超碰免费在线公开 | 91精品免费 | 色网站在线免费观看 | 日韩av在线免费播放 | 国产精品麻豆91 | 国产日产精品一区二区三区四区的观看方式 | 欧美亚洲精品在线观看 | 亚洲天天在线日亚洲洲精 | 不卡在线一区 | 激情视频区 | 欧美激情视频一区二区三区 | 黄av免费| 亚洲精品国产自产拍在线观看 | 精品电影一区二区 | 亚洲影视资源 | 久久午夜精品视频 | 欧美久久久久久久久中文字幕 | 色偷偷888欧美精品久久久 | 国产精品麻豆99久久久久久 | 欧美极度另类 | 又黄又爽又无遮挡的视频 | 婷婷亚洲综合五月天小说 | 日本三级香港三级人妇99 | 久久亚洲成人网 | 天天夜夜亚洲 | 一级国产视频 | 色诱亚洲精品久久久久久 | 91久久偷偷做嫩草影院 | 免费久久久久久 | 经典三级一区 | 国产精品va最新国产精品视频 | 97电影在线看视频 | 日韩欧美高清在线 | 亚洲aⅴ在线观看 | 国产资源网 | 97成人精品视频在线播放 | 91色在线观看 | 日日爱网站 | 在线看国产视频 | 日韩在线字幕 | 亚洲精品乱码久久久久久 | 免费看的国产视频网站 | 国产精品久久久久久久久久久不卡 | 黄色电影在线免费观看 | 久久午夜免费观看 | 欧美一二三四在线 | 国产资源在线视频 | 色婷婷狠狠五月综合天色拍 | 97品白浆高清久久久久久 | 久久久国产精品一区二区三区 | 在线成人看片 | 国产91勾搭技师精品 | 亚洲波多野结衣 | 亚洲精品国产精品99久久 | 国产一区二区在线视频观看 | 天天操天天插 | 黄色一级大片在线免费看国产一 | 日韩午夜电影网 | 91在线一区二区 | 中文字幕在线高清 | 国产又黄又硬又爽 | 久久99中文字幕 | 九九视频一区 | 久久在现| 在线国产黄色 | 中文字幕一区av | av福利网址导航 | 毛片在线网| 久草资源在线观看 | 国产高清永久免费 | 亚洲免费一级 | 日日干 天天干 | 免费成人av在线 | 国产一区二区在线播放 | 99综合视频 | 国产精品久久久久免费观看 | 亚洲极色 | 亚洲精品久久在线 | 久久社区视频 | 丰满少妇在线观看 | 一级久久精品 | 久久99久国产精品黄毛片入口 | 国产成人av | 久久黄色影视 | 国产精品一区二区免费 | 久草免费在线视频 | 亚洲人视频在线 | 国产精品久久久久一区二区三区共 | www欧美xxxx | 日本久久中文字幕 | 欧美国产视频在线 | 国产高清小视频 | 人人插人人艹 | 亚洲黄色在线 | 亚洲国产无 | 久久久精品成人 | 欧美日韩视频在线一区 | 五月激情片| 国产精品国产三级国产不产一地 | 成人综合婷婷国产精品久久免费 | 国产精品久久久久久久久久久久午 | 婷婷六月激情 | 亚洲成人在线免费 | 亚洲久草在线 | 国产精品美女久久久久久网站 | 人人爽人人射 | 免费不卡中文字幕视频 | 日韩精品久久久久久久电影竹菊 | 三级黄色理论片 | 日韩欧美国产视频 | 亚洲三级性片 | 91香蕉国产在线观看软件 | 国产精品黄色av | 午夜色场 | 国产剧情一区二区 | 美女视频是黄的免费观看 | 欧美伊人网| 免费av网站观看 | 日韩网站在线观看 | 亚洲特级毛片 | 亚洲精品视频在线观看免费视频 | 精品日韩中文字幕 | 最近免费观看的电影完整版 | 99国产精品久久久久老师 | 天天综合网在线观看 | 黄色大片国产 | 免费在线观看国产黄 | 日韩在线在线 | 三级av小说| 国产成人黄色网址 | 精品国产乱码久久 | 99视频导航 | 亚洲成人午夜av | 久久这里有精品 | 久草在线免费看视频 | www.狠狠干 | 久久免费在线观看视频 | 国内精品久久久久久久影视简单 | 91豆麻精品91久久久久久 | 成人av电影免费观看 | 伊人婷婷久久 | 日韩在线观看一区二区 | 国产精品久久久久久久久久免费看 | 91黄色在线看 | 久久精品一区二区三区中文字幕 | 在线视频欧美日韩 | 天天综合天天做 | 日p在线观看| 伊人网综合在线观看 | 91亚洲精品久久久蜜桃网站 | 超碰久热| 精品国产自在精品国产精野外直播 | 国产精品视频免费 | 不卡的av | 国产精品一区二区在线免费观看 | 97手机电影网 | 精品毛片久久久久久 | 最近中文字幕免费av | 久久久久激情视频 | 日韩精品久久久 | 久久成人免费电影 | 亚洲无吗天堂 | 国产电影黄色av | 337p欧美 | 成人中文字幕+乱码+中文字幕 | 九九免费精品视频在线观看 | 久久精品99视频 | 日韩影视在线观看 | 在线播放国产精品 | 在线视频 亚洲 | 中文字幕乱码在线播放 | 美女久久久| 五月婷婷操 | 国产99久久久国产精品免费二区 | 91黄色成人 | 99久久影视 | 中文字幕永久免费 | 狠色在线 | 久久久久久免费 | 久久九九国产视频 | 色综合久久久久综合体桃花网 | 日本激情视频中文字幕 | 激情av网址 | 日韩欧美精品在线 | 久久小视频 | 精品久久在线 | 欧美性猛片| 欧美一级免费高清 | 在线观看视频日韩 | 日本久久久久久 | 国产精品mv | 国产成人精品一区二区三区在线观看 | 久草精品在线观看 | 国产在线视频一区二区三区 | 国产精品欧美久久久久无广告 | 五月天九九 | a级国产乱理论片在线观看 伊人宗合网 | 久久综合九色综合欧美就去吻 | 日日干夜夜操视频 | 亚洲午夜精品久久久久久久久 | 欧美日韩在线视频一区 | 久草在线视频免赞 | 午夜av一区二区三区 | 精品专区 | 色婷婷免费视频 | 在线观看日本高清mv视频 | 中文字幕在线成人 | 在线国产福利 | 婷婷色在线播放 | 国产精品青青 | 国产欧美精品一区二区三区四区 | 亚洲高清在线 | 91精品久久久久久综合乱菊 | 国产精品久久久久久久免费大片 | 人人澡人人爽欧一区 | 日本激情视频中文字幕 | 99热精品久久 | 在线观看视频91 | 在线精品亚洲一区二区 | 亚洲最新视频在线播放 | 亚洲视频久久久 | 国产精品高潮呻吟久久av无 | 玖玖在线看 | 天天透天天插 | 九九九热精品免费视频观看网站 | 黄色h在线观看 | 精品福利av | av免费试看 | 天天曰视频 | 91视频黄色 | 国产成人av电影在线 | 99热 精品在线 | 福利视频入口 | 91桃色视频 | 一级特黄av | 欧美午夜精品久久久久久浪潮 | 7777xxxx| 久久久免费av | 操操操干干干 | 国产成本人视频在线观看 | 欧美精品在线免费 | 国产69精品久久app免费版 | 国产精品女主播一区二区三区 | 日本久久久久久科技有限公司 | 久久久久国产成人免费精品免费 | 婷婷丁香激情 | 天天鲁一鲁摸一摸爽一爽 | 超碰97中文 | 98涩涩国产露脸精品国产网 | 91麻豆精品国产91久久久无限制版 | 日韩av成人在线 | 久久综合中文色婷婷 | 成人a视频在线观看 | 天天操天天射天天插 | 国产一区在线播放 | 911久久香蕉国产线看观看 | 中文字幕欧美日韩va免费视频 | 日韩专区中文字幕 | 久久视频在线观看免费 | 美女av免费看 | 亚洲日本va中文字幕 | 午夜精品区 | 黄色毛片网站在线观看 | 伊人成人激情 | 久久免费视频在线观看 | 一区二区三区在线免费观看视频 | 在线视频一区二区 | 国产一线二线三线性视频 | 色婷婷激情综合 | 日日激情 | 色综合久久88色综合天天免费 | 欧美另类一二三四区 | 国产成人av片 | 免费能看的av | 色综合久久综合中文综合网 | 欧美va天堂va视频va在线 | 国产v在线 | 亚洲清纯国产 | 在线观看v片 | 99国产精品一区 | 久久久国产精品网站 | 成人在线视频网 | 在线看片中文字幕 | 亚洲午夜久久久久久久久 | 亚洲精品456在线播放第一页 | 日本少妇久久久 | 狠狠干天天色 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 天天摸天天舔天天操 | 91黄色免费看 | 丁香婷婷深情五月亚洲 | 色激情五月| 日韩免费看 | 国产福利久久 | 最近日韩中文字幕中文 | 亚洲激情影院 | 婷婷干五月 | 国产传媒一区在线 | 久久精品99北条麻妃 | 99爱在线观看 | 免费看v片网站 | 久久伊人精品天天 | 香蕉久草在线 | 天天操综合网站 | 色综合久久悠悠 | 国产一区黄色 | 久久国产精品99久久久久久进口 | 国产亚州av| 免费看片成年人 | 亚洲精品视频免费观看 | av电影免费在线看 | 国产精品18久久久久白浆 | av在观看 | 日韩综合视频在线观看 | 国产资源精品在线观看 | 日韩久久久 | 亚洲精品欧美专区 | 亚洲最新av在线 | 国产精品99久久久久久人免费 | 99精品在线看 | 激情五月婷婷综合 | 91在线免费视频观看 | 日韩成人在线一区二区 | 亚洲精品综合在线观看 | 久久国产免 | 国产精品123 | 国产精品久久久久婷婷 | 午夜视频在线网站 | 一区二区不卡在线观看 | 久久久在线观看 | 在线国产能看的 | 在线观看精品黄av片免费 | 国产精品18毛片一区二区 | 国产精品欧美久久久久久 | 国产九九精品 | 一区二区三区在线不卡 | 国产精品99久久久久人中文网介绍 | 亚洲 欧美 综合 在线 精品 | 在线观看黄网 | 久久成人综合视频 | 亚洲精品视频在 | 国产不卡在线播放 | 日韩av中文在线 | www.福利视频 | 91福利区一区二区三区 | 99热精品在线 | 亚洲日韩中文字幕 | 久草在线视频中文 | 久久99精品久久久久久久久久久久 | 国产自制av| 亚洲一区二区天堂 | 狠狠色伊人亚洲综合网站色 | 特级西西人体444是什么意思 | 国产 亚洲 欧美 在线 | 国产流白浆高潮在线观看 | av大全在线播放 | 久久五月婷婷丁香社区 | 超碰人人做 | 国产69精品久久久久99 | 国产在线日本 | 日韩性久久 | 国产精品九九久久99视频 | 中文字幕成人在线观看 | 久久天天躁狠狠躁亚洲综合公司 | 在线视频第一页 | 久久久综合电影 | 天天干夜夜干 | 国产精品久久久久久久久久妇女 | 国产亚洲欧美精品久久久久久 | 国产专区一| 日韩欧美在线视频一区二区 | 国产成人性色生活片 | 97精品国产97久久久久久免费 | 久久午夜羞羞影院 | 狠狠狠色狠狠色综合 | 免费亚洲黄色 | 国产尤物在线视频 | 91精品久久香蕉国产线看观看 | 日韩经典一区二区三区 | 成片人卡1卡2卡3手机免费看 | 日韩在线视频网 | 奇米网777 | av不卡在线看 | 四虎影视www | 国产精品对白一区二区三区 | 激情视频综合网 | 五月天最新网址 | 日韩免费一区二区三区 | 日韩精品不卡在线观看 | 一区二区三区免费在线播放 | 日韩毛片在线一区二区毛片 | 江苏妇搡bbbb搡bbbb | 亚洲最大av网站 | 久久99国产视频 | 日韩欧美国产精品 | 亚洲精选国产 | av网址在线播放 | 视频在线一区 | 国产91精品一区二区 | 亚洲成免费 | 少妇高潮流白浆在线观看 | 国产午夜精品一区二区三区在线观看 | 五月黄色 | 五月综合在线观看 | 成人免费观看av | 国内精品小视频 | 91福利视频一区 | 韩国av一区二区三区在线观看 | 亚洲精品短视频 | a在线播放 | 国产亚洲精品中文字幕 | 日日干av | 成人黄色资源 | 久艹视频免费观看 | 久久婷婷一区二区三区 | 久艹视频免费观看 | 久久这里只有精品视频99 | 午夜精品视频福利 | 麻豆免费在线视频 | 欧美视频国产视频 | 欧美一区二区三区在线观看 | 国产精成人品免费观看 | 国产精品一区二区三区99 | 国产破处在线视频 | 国产精品一区在线观看 | 午夜影院在线观看18 | 一级做a爱片性色毛片www | 国产精品免费一区二区三区在线观看 | 欧美天堂视频在线 | 日韩在线播放视频 | 国产精品久久久免费看 | 成人黄大片视频在线观看 | 狠狠色伊人亚洲综合网站色 | 成年人免费在线播放 | 日韩av电影一区 | 国产小视频网站 | 国产一区二区中文字幕 | 国产福利免费在线观看 | 丁香五月亚洲综合在线 | 99999精品 | 国产在线观看xxx | 天天操天天操天天操 | 日韩电影在线一区二区 | 五月综合久久 | 欧美小视频在线观看 | 免费av网址大全 | 久久尤物电影视频在线观看 | 成人影片在线播放 | 日日夜夜人人天天 | av高清一区二区三区 | 日韩视频中文 | 97视频入口免费观看 | 亚洲国产精品va在线看 | 久久黄色小说视频 | 国产精品高清免费在线观看 | 亚洲欧美一区二区三区孕妇写真 | 亚洲男人天堂a | 国产精品久久久久四虎 | 人人添人人澡 | 中文字幕丝袜制服 | 99久久一区| 久久成人在线视频 | 久久视频国产精品免费视频在线 | 精品99免费 | 色com| 国产精品 久久 | 成人精品一区二区三区中文字幕 | 国产又粗又猛又爽又黄的视频先 | 手机成人免费视频 | 夜色成人网 | 91免费日韩| 久久99精品国产麻豆宅宅 | 六月丁香色婷婷 | 97精品在线观看 | 久久久91精品国产一区二区三区 | 亚洲国产精品传媒在线观看 | 国产成人精品女人久久久 | 久草a在线 | 亚洲精品三级 | 99久久精品国产免费看不卡 | 色综合天天视频在线观看 | 91传媒在线 | 国产黄色一级片 | 国产中文字幕在线免费观看 | 日韩av成人在线观看 | 激情综合电影网 | 91大神免费视频 | 成年人黄色在线观看 | 天天在线免费视频 | 五月天综合激情 | 91精品国产成人观看 | av观看在线观看 | 激情开心站 | 色网站在线观看 | 国产在线精品一区二区 | 中文字幕色在线 | 色综合天天综合 | 日韩电影在线观看一区 | 人人澡人人模 | 久久精品黄色 | 在线亚洲人成电影网站色www | 精品国产乱码一区二区三区在线 | 国产精品毛片久久久久久久久久99999999 | 正在播放久久 | 亚洲精品久 | 蜜臀av一区二区 | 免费麻豆| 中文综合在线 | 狠狠狠狠狠狠天天爱 | 国产在线视频导航 | 五月天激情综合 | 黄色软件在线观看免费 | 国产成人av免费在线观看 | 91在线精品一区二区 | 国产精品一区二区av影院萌芽 | 99r在线| 久久免费中文视频 | 久久精品女人毛片国产 | 午夜国产一区二区三区四区 | 欧美一区二区在线 | 国产精品久久久久久久久久久久午夜 | 亚洲撸撸 | 麻豆91精品 | 亚洲伦理中文字幕 | 天天躁日日躁狠狠躁av麻豆 | 99在线热播精品免费99热 | 韩国av永久免费 | 一区二区三区 中文字幕 | 欧洲精品一区二区 | 亚洲天堂网站 | 成人av电影在线播放 | 婷婷六月天在线 | 日本69hd | 人人超碰在线 | 涩涩网站在线播放 | 久久看毛片 | 色综合久久88色综合天天6 | 国产高清黄色 | 亚洲毛片久久 | 精品成人a区在线观看 | 99精品在线 | 91尤物国产尤物福利在线播放 | 亚洲 欧美日韩 国产 中文 | 国产精品毛片一区视频播不卡 | 亚洲在线高清 | 99在线视频免费观看 | 成人永久视频 | 久久激情电影 | 国产又粗又长的视频 | 九九av| 天天做天天爽 | 成人精品视频 | 精品久久久久国产 | 国产69精品久久久久99 | 香蕉视频网站在线观看 | 久久精选视频 | 欧美性猛片 | 精品视频www | 91精品老司机久久一区啪 | 日本一区二区免费在线观看 | 在线观看aa| 久久综合久久综合久久综合 | 国产又粗又猛又黄又爽 | 免费视频黄色 | 色婷婷五| 日韩欧美视频免费观看 | 在线播放 日韩专区 | 国产精品正在播放 | 国产精品手机在线播放 | av超碰在线观看 | 天天干人人插 | 国产精品一区二区三区99 | 一级黄毛片 | 日韩在线观看视频中文字幕 | 久久最新网址 | 91亚洲欧美激情 | 99热精品国产 | av在观看 | 国产精品久久久久一区二区 | 色综合五月天 | 精品国产乱码久久久久 | 亚洲精品在线免费看 | 在线播放你懂 | 97av在线视频 | 欧美精品一区二区性色 | 久免费 | 日韩在线 一区二区 | 亚洲最新合集 | 亚洲成aⅴ人片久久青草影院 | 超碰人人舔 | 免费黄在线观看 | 丁香激情综合久久伊人久久 | 免费看成人a | 国产黄色资源 | 992tv人人草 黄色国产区 | 欧美最新大片在线看 | 超碰在线人 | 在线a亚洲视频播放在线观看 | 国产精品九色 | 国产又粗又猛又爽 | 精品在线99 | 在线看国产 | 国产精品久久久久一区 | 在线亚洲激情 | 国产精品青草综合久久久久99 | 免费看片网站91 | 国产又粗又猛又黄又爽的视频 | 国产成人亚洲在线观看 | 中文字幕专区高清在线观看 | 日韩三级不卡 | 在线观看免费视频你懂的 | 99久久久久久久久 | 不卡av在线| 成人黄色电影免费观看 | 在线观看91精品视频 | 99精品视频精品精品视频 | 综合网天天色 | 天天操比| 欧美中文字幕第一页 | 波多野结衣视频在线 | 国产手机av | 精品国产自 | 亚洲黄色一级电影 | 少妇性aaaaaaaaa视频 | 97夜夜澡人人爽人人免费 | 成人免费观看完整版电影 | 欧美老人xxxx18 | 亚洲免费精品一区二区 | 日韩精品一区二区三区三炮视频 | 久久久久亚洲精品男人的天堂 | 中文字幕频道 | 亚洲精品国产电影 | 国产高清视频在线免费观看 | 国产高清精品在线观看 | 蜜臀av网站 | 免费美女av| 黄色免费大全 | 精品一区精品二区 | 久久免费观看视频 | 黄色小说视频在线 | av免费在线免费观看 | 国产h片在线观看 | 精品专区一区二区 | 国产日产av | 中文字幕麻豆 | 胖bbbb搡bbbb擦bbbb | www.日日操.com | 久久精品这里精品 | 久久综合九色九九 | 91热在线 | 久久不见久久见免费影院 | 久久精品久久精品久久39 | 亚洲国产片色 | 国产剧情亚洲 | 欧美日韩视频网站 | 久久 精品一区 | 精品美女久久 | 久碰视频在线观看 | se婷婷 | 欧美一级久久久久 | 天天操天天吃 | 五月婷婷丁香色 | 免费精品在线观看 | 成人久久免费视频 | 亚洲精品在线观看免费 | 欧美精品资源 | 九色在线| 欧美天天综合 | 97香蕉久久国产在线观看 | 97av影院 | 麻豆视频免费在线播放 | 黄色激情网址 | a级免费观看 | 丝袜美腿在线视频 | av在观看 | 成人免费在线观看av | 最新国产精品拍自在线播放 | 国产精品久久久久久超碰 | 天天综合网入口 | 在线色亚洲 | 国产中的精品av小宝探花 | 18pao国产成视频永久免费 | 美女视频一区 | 韩国精品在线观看 | 国产精品入口66mio女同 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 九九久久在线看 | 97色在线观看免费视频 | 国产精品久久久久婷婷二区次 | 深爱五月激情五月 | 亚洲 综合 激情 | 成人全视频免费观看在线看 | 亚洲激情视频 | 黄色网免费 | 日本中文字幕在线播放 | 欧美日韩国产综合网 | 国产美女精品视频免费观看 | wwxxx日本| 波多野结衣视频一区 | 蜜臀久久99精品久久久无需会员 | 婷婷射五月 | 免费观看www7722午夜电影 | 日韩免费视频在线观看 | 亚洲精品伦理在线 | 成人av电影在线 | 97在线播放| 欧美先锋影音 | 国产成人精品一区一区一区 | 亚洲天堂网在线视频 | 中文字幕第一 | 深夜福利视频一区二区 | 91福利视频在线 | 欧美精品久久久久久久 | 亚洲激情精品 | 亚洲国产视频在线 | 成人久久18免费网站图片 | 婷婷草| 国产精品成人av久久 | 黄色三级av | 韩日av一区二区 | 中文字幕一区二区三区四区久久 | 色国产精品 | 国产成人99久久亚洲综合精品 | 麻豆小视频在线观看 | 2021国产精品视频 | 日韩一级片大全 | 日韩av中文字幕在线免费观看 | av免费网站观看 | 国产精品一区二区吃奶在线观看 | 欧美a级在线 | 99精品热视频 | 国产一区二区精品 | 五月天综合 | 亚洲成人第一区 | 日韩激情视频在线观看 | 中文一二区 | av大片网址 | 日本高清久久久 | 精品国产一区二区三区免费 | 国产一级精品在线观看 | 日韩视频一区二区三区在线播放免费观看 | 日韩av视屏在线观看 | 色午夜影院 | 91视频3p | 九七在线视频 | av三级在线播放 | 欧美在线一二 | 亚洲最大免费成人网 | 亚洲作爱视频 | 国产成人一区在线 | 亚洲 欧美 国产 va在线影院 | 欧日韩在线视频 | 亚洲成人资源在线观看 | 五月婷婷久草 | 欧美一区二区三区在线视频观看 | 久久99国产精品视频 | 手机av在线不卡 | 成人性生交大片免费看中文网站 | 国产精品av久久久久久无 | 免费在线观看成人小视频 | 福利片免费看 | 日韩中文字幕在线观看 | 日日综合 | 超碰97av在线 | 又粗又长又大又爽又黄少妇毛片 | 中文字幕在线播出 | 中文字幕 在线 一 二 | 国产一级片免费观看 | 欧美日韩中文字幕在线视频 | 综合精品久久久 | 黄色av免费 | 丁香综合av | 久久久久久久久久免费视频 | 亚洲欧洲av在线 | 国产成人三级在线 | 在线视频你懂得 | 天天插伊人 | 天天综合网 天天综合色 | 成人黄大片视频在线观看 | 99精品久久久久久久 | 91精品国产自产在线观看永久 | 青草视频免费观看 | 久久精品看片 | 欧美日韩精品在线播放 | 久久久免费高清视频 | www.夜夜骑.com | avcom在线 | 激情视频一区二区 | 精品欧美在线视频 | 狠狠干网站 | 色综合久久久久 | 日韩av在线看 | a精品视频| 久久资源在线 | 99热这里有 | 中文字幕黄色网址 | av黄色av | 免费久久视频 | 久久精品官网 | 中文字幕123区 | 亚洲一区天堂 | 激情在线网站 | 五月天色丁香 | 久久精国产 | 1000部国产精品成人观看 | 日韩亚洲在线视频 | 免费久久片 | 国产 日韩 在线 亚洲 字幕 中文 | 91精品国产乱码久久 | 五月婷婷综合在线观看 | 欧美va电影 | 亚洲伊人成综合网 | 天天干,天天射,天天操,天天摸 | 亚洲激情小视频 | 国产中文字幕一区二区三区 | 久久y | 欧美精品中文 | 精品久久久久久国产偷窥 | 夜夜婷婷 | 中文字幕亚洲情99在线 | 亚洲精品在线一区二区三区 | 日韩精品大片 | 在线观看爱爱视频 | 日韩精品视频免费专区在线播放 | 日韩免费成人 | 精品久久久久国产免费第一页 | 欧美久久久久久久久久 | 国产亚洲精品中文字幕 | 欧洲高潮三级做爰 | 国产你懂的在线 | 日本在线观看视频一区 | 蜜臀av网站| 又黄又色又爽 | 欧美一级乱黄 | 激情 一区二区 | 久久婷婷亚洲 | 亚洲天堂精品视频在线观看 | www.色在线| 国产精品成人自产拍在线观看 | 国产一区播放 | 69精品视频| 波多野结衣在线视频一区 | 在线观看深夜视频 | 欧美日韩国产一区 | 91桃色免费观看 | 在线观看mv的中文字幕网站 | 日韩精品一区二区三区外面 | 婷婷日日 | 色综合久久天天 | 青草视频在线播放 | 男女激情片在线观看 | 久久成人国产精品免费软件 | 久久香蕉一区 | 欧美成人影音 | 亚洲成人动漫在线观看 | 国产精品videossex国产高清 | 国产小视频在线观看 | 99精品欧美一区二区三区 | 在线电影91| 91九色在线观看视频 | 中文字幕人成不卡一区 | 美女久久久 | 国产免费又爽又刺激在线观看 | 亚洲精品高清一区二区三区四区 | 亚洲精品美女 | 亚洲人成影院在线 | 色资源中文字幕 | 天天操一操 | 久久久精品国产一区二区三区 | 国产精品热 | 天天天射 | 中文字幕影片免费在线观看 | 亚洲一区 av | 日韩最新在线视频 | 成人一区二区三区中文字幕 | 国产99在线 | 四虎成人免费影院 | 日本久久91 | 国产精品手机看片 | 中文字幕制服丝袜av久久 | 亚洲激情小视频 | 欧美日韩裸体免费视频 | 一区视频在线 | 国产一区二区三区黄 | 日韩精品中文字幕在线观看 | 在线观看中文字幕av | 亚洲国产av精品毛片鲁大师 | 亚洲激情p | 在线国产精品一区 | 99 国产精品 | 欧美一区免费在线观看 | 精品一区二区精品 | 国产高清一区二区 | 久久精品之 | 国产视频久 | 久久精品xxx | 中文字幕黄色网 | 97超碰超碰 | 91丝袜美腿 | 手机成人在线电影 | 2023亚洲精品国偷拍自产在线 | 亚洲精品一区二区三区新线路 | 国产小视频在线 | 亚洲国产中文在线 | 日韩午夜电影 | 天天干夜夜干 | 精品一区 精品二区 | 免费www视频 | 亚洲免费公开视频 | 国产精品网站 | 日韩成人xxxx | 国产精品专区在线观看 | 久久久免费国产 | 国产色视频一区 | 久久亚洲日本 | 最近免费观看的电影完整版 | 久久免费视频网站 | 91成人午夜 | 成人久久视频 | 狠狠色丁香久久综合网 | 久久欧美视频 | 狠狠干我 | bayu135国产精品视频 | 精品久久久久久久久久久久久久久久久久 | 久久91网 | 中文字幕丝袜制服 |