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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core和json请求这样用真简单,axios、微信小程序得救了

發布時間:2023/12/4 asp.net 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core和json请求这样用真简单,axios、微信小程序得救了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹了一種在ASP.NET Core MVC/ASP.NET Core WebAPI中,將axios等前端提交的json格式請求數據,映射到Action方法的普通類型參數的方法,并且講解了其實現原理。

?

一、為什么要簡化json格式請求的參數綁定

????在ASP.NET Core MVC/ ASP.NET Core WebAPI(以下簡稱ASP.NET Core)中,可以使用[FromQuery] 從QueryString中獲取參數值,也可以使用[FromForm]從表單格式(x-www-form-urlencoded)的請求中獲取參數值。

隨著前后端分離的流行,現在越來越多的前端請求體是json格式的,比如非常流行的AJAX前端庫axios的post請求默認就是json格式的,微信小程序的請求也默認是json格式的。在ASP.NET Core中可以通過[FromBody]來把Action的參數和請求數據綁定在一起。假如Http請求的內容為:

{“UserName”:”test”,”Password”:”123”}

那么就要先聲明一個包含UserName、Password兩個屬性的User類,然后再把Action的參數如下聲明:

public IActionResultLogin([FromBody]User u);

?這樣幾乎每一個Action方法都要聲明一個和請求對應的復雜類,如果項目中Action很多的話,也就會有非常多的“Action參數類”,不勝其煩。ASP.NET Core對于Json請求,并不能像[FromQuery]一樣把Json的某個屬性和簡單類型的Action參數綁定到一起。

?

因此我開發了YouZack.FromJsonBody這個開源庫,讓我們可以用這樣的方式來進行簡單類型參數的綁定:

Test([FromJsonBody] int i2, [FromJsonBody("author.age")]intaAge, [FromJsonBody("author.father.name")]string dadName)

?

這樣的Action參數可以直接從如下的Json請求中獲取數據:

{"i1":1,"i2":5,"author":{"name":"yzk","age":18,"father":{"name":"laoyang","age":28}}}

?

二、FromJsonBody使用方法

這個庫使用.NET Standard開發,因此可以支持.NET Framework及.NET Core,既支持ASP.NET Core MVC,也支持ASP.NET Core Web API。

GitHub地址:

https://github.com/yangzhongke/YouZack.FromJsonBody

?

第一步:

在ASP.NET Core項目中通過NuGet安裝包:

Install-Package YouZack.FromJsonBody

?

第二步:

在項目的Startup.cs中添加using YouZack.FromJsonBody;

然后在Configure方法的UseEndpoints()之前添加如下代碼:

app.UseFromJsonBody();

?

第三步:

在Controller的Action參數中[FromJsonBody]這個Attribute,參數默認從Json請求的同名的屬性中綁定獲取值。如果設定FromJsonBody的PropertyName參數,則從Json請求的PropertyName這個名字的屬性中綁定獲取值,PropertyName的值也支持[FromJsonBody("author.father.name")]這樣的多級屬性綁定。

?

舉例1,對于如下的Json請求:

{"phoneNumber":"119110","age":3,"salary":333.3,"gender":true,"dir":"west","name":"zackyang"}

?

客戶端的請求代碼:

axios.post('@Url.Action("Test","Home")',{phoneNumber: "119110", age: 3, salary: 333.3, gender:true,dir:"west",name:"zack yang" }) .then(function (response) {alert(response.data); }) .catch(function (error) {alert('Sendfailed'); });

服務器端Controller的Action代碼:

public IActionResultTest([FromJsonBody]string phoneNumber, [FromJsonBody]string test1,[FromJsonBody][Range(0,100,ErrorMessage="Age must be between 0 and 100")]int? age,[FromJsonBody]bool gender,[FromJsonBody]double salary,[FromJsonBody]DirectionTypes dir,[FromJsonBody][Required]stringname) {if(ModelState.IsValid==false){varerrors = ModelState.SelectMany(e =>e.Value.Errors).Select(e=>e.ErrorMessage);returnJson("Invalid input!"+string.Join("\r\n",errors));}returnJson($"phoneNumber={phoneNumber},test1={test1},age={age},gender={gender},salary={salary},dir={dir}"); }

?

舉例2,對于如下的Json請求:

?

{"i1":1,"i2":5,"author":{"name":"yzk","age":18,"father":{"name":"laoyang","age":28}}}

?

客戶端的請求代碼:

axios.post('/api/API',{i1: 1, i2: 5, author: { name: 'yzk', age: 18, father: {name:'laoyang',age:28}}}) .then(function (response) {alert(response.data); }) .catch(function (error) {alert('Sendfailed'); });

服務器端Controller的Action代碼:

public async Task<int>Post([FromJsonBody("i1")] int i3, [FromJsonBody] int i2,[FromJsonBody("author.age")]intaAge,[FromJsonBody("author.father.name")] string dadName) {Debug.WriteLine(aAge);Debug.WriteLine(dadName);returni3 + i2+aAge; }

??

三、FromJsonBody原理講解

項目的全部代碼請參考GitHub地址:

https://github.com/yangzhongke/YouZack.FromJsonBody

FromJsonBodyAttribute是一個自定義的數據綁定的Attribute,主要源代碼如下:

?

public class FromJsonBodyAttribute :ModelBinderAttribute {public string PropertyName { get; private set; }public FromJsonBodyAttribute(string propertyName=null) :base(typeof(FromJsonBodyBinder)){this.PropertyName= propertyName;} }

所有數據綁定Attribute都要繼承自ModelBinderAttribute類,當需要嘗試計算一個被FromJsonBodyAttribute修飾的參數的綁定值的時候,FromJsonBodyBinder類就會被調用來進行具體的計算。FromJsonBody這個庫的核心代碼都在FromJsonBodyBinder類中。

因為FromJsonBodyBinder需要從Json請求體中獲取數據,為了提升性能,我們編寫了一個自定義的中間件FromJsonBodyMiddleware來進行Json請求體字符串到解析完成的內存對象JsonDocument,然后把解析完成的JsonDocument對象供后續的FromJsonBodyBinder使用。我們在Startup中調用的UseFromJsonBody()方法就是在應用FromJsonBodyMiddleware中間件,可以看一下UseFromJsonBody()方法的源代碼如下:

?

public static IApplicationBuilderUseFromJsonBody(this IApplicationBuilder appBuilder) {return appBuilder.UseMiddleware<FromJsonBodyMiddleware>(); }

如下是FromJsonBodyMiddleware類的主要代碼(全部代碼見Github)

public sealed class FromJsonBodyMiddleware {public const string RequestJsonObject_Key = "RequestJsonObject";private readonly RequestDelegate _next;public FromJsonBodyMiddleware(RequestDelegate next){_next= next;}publicasync Task Invoke(HttpContext context){string method = context.Request.Method;if(!Helper.ContentTypeIsJson(context, out string charSet)||"GET".Equals(method,StringComparison.OrdinalIgnoreCase)){await _next(context);return;}Encoding encoding;if(string.IsNullOrWhiteSpace(charSet)){encoding= Encoding.UTF8;}else{encoding = Encoding.GetEncoding(charSet);} context.Request.EnableBuffering();int contentLen = 255;if(context.Request.ContentLength != null){contentLen= (int)context.Request.ContentLength;}Streambody = context.Request.Body;string bodyText;if(contentLen<=0){bodyText= "";}else{using(StreamReader reader = new StreamReader(body, encoding, true, contentLen,true)){bodyText= await reader.ReadToEndAsync();}}if(string.IsNullOrWhiteSpace(bodyText)){await_next(context);return;}if(!(bodyText.StartsWith("{")&&bodyText.EndsWith("}"))){await _next(context);return;}try{using(JsonDocument document =JsonDocument.Parse(bodyText)){body.Position= 0;JsonElementjsonRoot = document.RootElement;context.Items[RequestJsonObject_Key]= jsonRoot;await _next(context);}}catch(JsonExceptionex){await _next(context);return;}} }

每個Http請求到達服務器的時候,Invoke都會被調用。因為Get請求一般不帶請求體,所以這里對于Get請求不處理;同時對于請求的ContentType不是application/json的也不處理,這樣可以避免無關請求被處理的性能影響。

為了減少內存占用,默認情況下,ASP.NETCore中對于請求體的數據只能讀取一次,不能重復讀取。FromJsonBodyMiddleware需要讀取解析請求體的Json,但是后續的ASP.NET Core的其他組件也可能會還要再讀取請求體,因此我們通過Request.EnableBuffering()允許請求體的多次讀取,這樣會對內存占用有輕微的提升。不過一般情況下Json請求的請求體都不會太大,所以這不會是一個嚴重的問題。

接下來,使用.NET 新的Json處理庫System.Text.Json來進行Json請求的解析:

JsonDocument document =JsonDocument.Parse(bodyText)

解析完成的Json對象放到context.Items中,供FromJsonBodyBinder使用:

context.Items[RequestJsonObject_Key]= jsonRoot

?

下面是FromJsonBodyBinder類的核心代碼:

public class FromJsonBodyBinder :IModelBinder {public static readonly IDictionary<string, FromJsonBodyAttribute> fromJsonBodyAttrCache = new ConcurrentDictionary<string,FromJsonBodyAttribute>();public Task BindModelAsync(ModelBindingContext bindingContext){var key = FromJsonBodyMiddleware.RequestJsonObject_Key;objectitemValue =bindingContext.ActionContext.HttpContext.Items[key];JsonElement jsonObj =(JsonElement)itemValue;string fieldName = bindingContext.FieldName;FromJsonBodyAttribute fromJsonBodyAttr =GetFromJsonBodyAttr(bindingContext, fieldName);if(!string.IsNullOrWhiteSpace(fromJsonBodyAttr.PropertyName)){fieldName =fromJsonBodyAttr.PropertyName;}object jsonValue;if(ParseJsonValue(jsonObj, fieldName, out jsonValue)){objecttargetValue =jsonValue.ChangeType(bindingContext.ModelType);bindingContext.Result=ModelBindingResult.Success(targetValue);}else{bindingContext.Result= ModelBindingResult.Failed();}return Task.CompletedTask;}private static bool ParseJsonValue(JsonElement jsonObj, string fieldName, out objectjsonValue){int firstDotIndex = fieldName.IndexOf('.');if(firstDotIndex>=0){string firstPropName = fieldName.Substring(0, firstDotIndex);string leftPart = fieldName.Substring(firstDotIndex + 1);if(jsonObj.TryGetProperty(firstPropName,out JsonElement firstElement)){return ParseJsonValue(firstElement, leftPart, out jsonValue);}else{jsonValue= null;return false;}}else{bool b = jsonObj.TryGetProperty(fieldName, out JsonElement jsonProperty);if(b){jsonValue= jsonProperty.GetValue();}else{jsonValue= null;}return b;} }private static FromJsonBodyAttribute GetFromJsonBodyAttr(ModelBindingContext bindingContext, string fieldName){var actionDesc = bindingContext.ActionContext.ActionDescriptor;string actionId = actionDesc.Id;string cacheKey = $"{actionId}:{fieldName}";FromJsonBodyAttribute fromJsonBodyAttr;if(!fromJsonBodyAttrCache.TryGetValue(cacheKey, out fromJsonBodyAttr)){var ctrlActionDesc =bindingContext.ActionContext.ActionDescriptor as ControllerActionDescriptor;var fieldParameter =ctrlActionDesc.MethodInfo.GetParameters().Single(p =>p.Name == fieldName);fromJsonBodyAttr=fieldParameter.GetCustomAttributes(typeof(FromJsonBodyAttribute),false) .Single() as FromJsonBodyAttribute;fromJsonBodyAttrCache[cacheKey]= fromJsonBodyAttr;} return fromJsonBodyAttr;} }

下面對FromJsonBodyBinder類的代碼做一下分析,當對一個標注了[FromJsonBody]的參數進行綁定的時候,BindModelAsync方法會被調用,綁定的結果(也就是計算后參數的值)要設置到bindingContext.Result中,如果綁定成功就設置:ModelBindingResult.Success(綁定的值),如果因為數據非法等導致綁定失敗就設置ModelBindingResult.Failed()

在FromJsonBodyBinder類的BindModelAsync方法中,首先從bindingContext.ActionContext.HttpContext.Items[key]中把FromJsonBodyMiddleware中解析完成的JsonElement取出來。如果Action有5個參數,那么BindModelAsync就會被調用5次,如果每次BindModelAsync都去做“Json請求體的解析”將會效率比較低,這樣在FromJsonBodyMiddleware中提前解析好就可以提升數據綁定的性能。

接下來調用自定義方法GetFromJsonBodyAttr取到方法參數上標注的FromJsonBodyAttribute對象,檢測一下FromJsonBodyAttribute上是否設置了PropertyName:如果設置了的話,就用PropertyName做為要綁定的Json的屬性名;如果沒有設置PropertyName,則用bindingContext.FieldName這個綁定的參數的變量名做為要綁定的Json的屬性名。

接下來調用自定義方法ParseJsonValue從Json對象中取出對應屬性的值,由于從Json對象中取出來的數據類型可能和參數的類型不一致,所以需要調用自定義的擴展方法ChangeType()進行類型轉換。ChangeType方法就是對Convert.ChangeType的封裝,然后對于可空類型、枚舉、Guid等特殊類型做了處理,具體到github上看源碼即可。

自定義的ParseJsonValue方法中通過簡單的遞歸完成了對于"author.father.name"這樣多級Json嵌套的支持。firstPropName變量就是取出來的” author”, leftPart變量就是剩下的"father.name",然后遞歸調用ParseJsonValue進一步計算。

自定義的GetFromJsonBodyAttr方法使用反射獲得參數上標注的FromJsonBodyAttribute對象。為了提升性能,這里把獲取的結果緩存起來。非常幸運的是,ASP.NET Core中的ActionDescriptor對象有Id屬性,用來獲得一個Action方法唯一的標識符,再加上參數的名字,就構成了這個緩存項的Key。

?

四、總結

Zack.FromJsonBody可以讓ASP.NET Core MVC和ASP.NET Core WebAPI程序的普通參數綁定到Http請求的Json報文體中。這個開源項目已經被youzack.com這個英語學習網站一年的穩定運行驗證,各位可以放心使用。希望這個開源項目能夠幫助大家,歡迎使用過程中反饋問題,如果感覺好用,歡迎推薦給其他朋友。

總結

以上是生活随笔為你收集整理的ASP.NET Core和json请求这样用真简单,axios、微信小程序得救了的全部內容,希望文章能夠幫你解決所遇到的問題。

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

五月天天色 | 九九精品久久 | 欧洲精品二区 | 国产黄色片一级三级 | 国产精品国产三级在线专区 | 丁香电影小说免费视频观看 | 五月婷婷在线播放 | 久久综合久久综合久久 | 五月婷久久 | 久久深夜福利免费观看 | 国产精品免费不卡 | 蜜臀av在线一区二区三区 | 97人人网| 亚洲国产精品99久久久久久久久 | 奇米影视999 | 中文在线字幕观看电影 | 天天干天天碰 | 午夜久久网站 | 五月开心六月伊人色婷婷 | 久久精品国产美女 | 日韩精品一区二区三区在线视频 | 91麻豆精品| 91桃色在线播放 | 最近免费中文字幕mv在线视频3 | 日韩理论电影在线观看 | 国产经典 欧美精品 | 免费久久精品视频 | 日韩免费在线观看视频 | 18av在线视频| 中文字幕av日韩 | 成人在线观看影院 | 免费在线黄色av | 国产无套视频 | 亚洲无吗天堂 | 国产精选视频 | 一区二区高清在线 | 18久久久| 日韩精品高清视频 | 日韩中文幕 | 又黄又爽的视频在线观看网站 | 一级做a爱片性色毛片www | 在线日韩中文 | 久久婷婷色综合 | 精油按摩av | 日韩在线大片 | 欧美污污网站 | 青草视频在线免费 | 免费亚洲成人 | 日韩精品一区二区久久 | 免费福利视频导航 | 天天操天天草 | av一级免费| 碰超人人| 美女黄频视频大全 | 天天操综合网站 | 中文字幕综合在线 | 欧美午夜精品久久久久 | 亚洲影院色 | 国产精品手机在线播放 | 国产成人一区二区三区 | 最近中文字幕高清字幕免费mv | 欧美另类xxx| 天天撸夜夜操 | 亚洲国产视频a | 91豆麻精品91久久久久久 | 久久这里只有精品9 | 国产欧美综合在线观看 | 日韩成人精品 | 成人免费观看在线视频 | aⅴ视频在线| 亚洲欧洲成人 | 久久免费精品视频 | 99九九热只有国产精品 | 999超碰 | 婷婷狠狠操 | 西西人体4444www高清视频 | av字幕在线 | 中文字幕欧美三区 | 在线免费黄色毛片 | 色欧美88888久久久久久影院 | 久久黄色片子 | 日韩精品亚洲专区在线观看 | 欧美嫩草影院 | 在线观看亚洲电影 | 久青草视频在线观看 | 韩国一区视频 | 91久久人澡人人添人人爽欧美 | 激情网在线观看 | 国产96在线观看 | 在线香蕉视频 | 玖玖爱国产在线 | 国产精品久久久一区二区 | 91看片网址| 久久免费福利视频 | 在线日韩一区 | 在线免费观看涩涩 | 色网免费观看 | 中文字幕在线观看第一页 | 亚洲国产日韩av | 国产精品国产三级国产aⅴ9色 | www,黄视频| 国产看片 色 | 久久久久女人精品毛片九一 | 2022久久国产露脸精品国产 | 欧美日韩精品免费观看视频 | 国产中文在线字幕 | 黄色字幕网 | 国产人成看黄久久久久久久久 | 综合激情av| 九九免费在线观看视频 | 97热久久免费频精品99 | 天堂入口网站 | 欧美性一级观看 | 欧美日韩后| 一级免费黄色 | 日韩免费三区 | 日韩av免费观看网站 | 久久精品综合视频 | 国产h片在线观看 | 久久久天天操 | 日韩精品一区二区三区三炮视频 | 日韩成人高清在线 | 99精品在线直播 | 日韩在线观看视频在线 | 超碰人人做 | 国产精品成人av在线 | 免费国产一区二区视频 | 亚洲成人国产精品 | 亚洲国产偷 | a级片韩国 | 色综合久久综合中文综合网 | 91精品国产麻豆 | 日本精品久久 | 91人人插 | 欧美精品第一 | 91av在线免费 | 国产 日韩 欧美 自拍 | 97超碰超碰 | 免费日韩电影 | 婷婷日韩| 色综合五月 | 亚洲三级网 | 国产韩国精品一区二区三区 | 在线观看国产成人av片 | 91高清一区| 久久久久久久久久免费视频 | 人人澡人摸人人添学生av | 黄色片免费电影 | 成人一区二区在线 | 探花国产在线 | 欧美日韩视频一区二区三区 | 亚洲日本va午夜在线电影 | 色播99 | 正在播放国产一区 | 午夜av大片 | 国产精品一区二区在线看 | 一级a毛片高清视频 | 久久av免费 | 精品色999| 午夜123 | 国色天香永久免费 | 狠狠干夜夜爱 | 亚洲精品欧美精品 | 在线免费观看不卡av | 超碰97人人在线 | 天天看天天干 | 国产一二三四在线观看视频 | 麻豆成人小视频 | 伊色综合久久之综合久久 | 成人久久久久久久久久 | 97超碰中文| 全黄网站| 综合激情网... | 97人人超碰在线 | 久久精品中文字幕少妇 | 午夜国产一区二区 | 天天射色综合 | 久久草视频| 麻豆va一区二区三区久久浪 | 国产做爰视频 | 激情综合色图 | 粉嫩av一区二区三区免费 | 美女天天操 | 免费黄色特级片 | 新版资源中文在线观看 | 超碰97人人射妻 | www.香蕉视频 | 五月天最新网址 | 91丨九色丨蝌蚪丨老版 | 成人在线一区二区 | 日本久久久亚洲精品 | 999久久久久久久久久久 | 韩国精品在线 | 日韩精品免费一区二区在线观看 | 999成人| 欧美成人猛片 | 中文字幕第一页在线视频 | 亚洲激情 | 伊人久久五月天 | 99国产高清 | 丁香婷婷激情国产高清秒播 | 男女全黄一级一级高潮免费看 | 亚洲精品久久久蜜臀下载官网 | 国产精品麻豆三级一区视频 | aa一级片| 免费在线观看午夜视频 | 国产在线a视频 | 国产麻豆精品免费视频 | 亚洲精品国产综合99久久夜夜嗨 | 国产a国产a国产a | 色网站免费在线观看 | 91在线国产观看 | 亚洲欧洲av在线 | 精品久久久成人 | 国产精品久久一卡二卡 | 91日韩在线播放 | 又色又爽的网站 | 九色91av| 天天曰天天曰 | 91福利在线观看 | 综合黄色网 | 最近中文字幕免费观看 | 国产一区二区三区午夜 | 最新中文字幕在线播放 | 波多野结衣在线观看一区二区三区 | 国产尤物在线视频 | 天天干天天操天天入 | 成av人电影 | 日本中文字幕免费观看 | 国产99色| 国产精品wwwwww | 三级免费黄| 在线观看av免费观看 | 国产正在播放 | 超碰在线天天 | 午夜久久影视 | 日本精品一区二区三区在线播放视频 | 久久这里只有精品视频首页 | 999ZYZ玖玖资源站永久 | 欧美xxxxx在线视频 | 一区二区三区在线不卡 | 亚洲视频大全 | 亚洲黄色免费在线 | 日本一区二区三区免费观看 | www四虎影院 | 99精品在线免费观看 | 亚洲国产精品久久久久 | 日本精品免费看 | 国产精品毛片一区二区在线 | 9999激情 | 国产91精品看黄网站 | 91资源在线观看 | 9热精品| 国产亚洲精品美女久久 | 久久免费精彩视频 | 91三级在线观看 | 99热官网| 精品一区三区 | 91精品欧美 | 99热超碰在线 | 国产精品毛片久久 | 天天天天天天操 | 免费中文字幕 | a级国产乱理伦片在线观看 亚洲3级 | 日本视频网 | 国产精品久久嫩一区二区免费 | 亚洲三级国产 | 久久婷婷丁香 | 91av在线免费| 久久国产视屏 | 国产精品久久久久久久久久不蜜月 | av免费在线播放 | 成人中文字幕在线 | 黄色大片日本免费大片 | 欧美少妇18p | 久久黄色片| 久久久久久久久久久久影院 | 日韩理论电影在线 | 香蕉视频一级 | 婷婷亚洲激情 | 一区二区三区免费看 | 波多野结衣在线视频免费观看 | 日本精品久久久一区二区三区 | www.av在线.com | 一级黄毛片 | 日本精品视频一区二区 | 国产特级毛片aaaaaa高清 | 深夜免费福利网站 | 国产一级黄色片免费看 | 免费 在线 中文 日本 | 成人午夜精品久久久久久久3d | 精品国产诱惑 | 亚洲一区欧美激情 | 在线91视频| 国产精品久久久久久久久久久免费看 | 亚洲理论在线 | 日韩在线网址 | 精品久久网 | 国精产品满18岁在线 | 色资源二区在线视频 | 色综合婷婷 | www.夜夜爱 | 中文字幕精品三级久久久 | 国产精品美女www爽爽爽视频 | 精品国产亚洲日本 | 国产精品久久久久久久久久东京 | 国产群p | 久久免费视频在线观看 | 国产小视频你懂的 | 国产午夜剧场 | 日韩有码专区 | 999成人 | 久久99精品国产麻豆宅宅 | 精品一区二区三区在线播放 | 四虎影视久久久 | 欧美日韩在线观看一区二区 | 深夜免费福利在线 | av免费网 | 国产欧美精品在线观看 | 中文字幕精品一区二区精品 | 日韩一区精品 | 激情视频免费观看 | 伊人久久精品久久亚洲一区 | 2018亚洲男人天堂 | 五月天亚洲婷婷 | 极品久久久久 | 免费日韩 精品中文字幕视频在线 | www日韩视频 | 精品uu| 日韩91精品 | 免费观看的av网站 | 九九热在线播放 | 亚洲在线视频播放 | 久久dvd| 成人黄色在线电影 | 日本黄色大片免费看 | 四虎国产| 久操中文字幕在线观看 | www黄com | 成人免费av电影 | 五月天婷婷免费视频 | 国产精品久久久久四虎 | 国产高清在线免费 | 日韩综合一区二区三区 | 国产精品永久在线观看 | 久久久久福利视频 | 精品国产伦一区二区三区观看方式 | 中文在线中文资源 | 午夜天使 | 麻豆视频在线看 | 日韩精品亚洲专区在线观看 | 成人禁用看黄a在线 | 中文字幕网站视频在线 | 黄色aaa级片 | 日韩中文幕 | 天天插一插| 四虎在线免费观看 | 深爱激情五月综合 | 91九色蝌蚪在线 | 欧美性视频网站 | 亚洲欧美经典 | 开心激情五月婷婷 | 麻豆一级视频 | 国产在线观看,日本 | 激情欧美一区二区免费视频 | 久久精品在线视频 | 免费看黄色大全 | 91精品国产自产91精品 | 五月婷婷网站 | 欧美成人a在线 | 91免费网 | 亚洲欧美视频在线 | 欧美另类美少妇69xxxx | 天天综合色 | 日韩91av | 999久久久 | 久久色在线观看 | 97超视频在线观看 | 国内精品中文字幕 | 永久av免费在线观看 | 欧美日韩国产一区二区三区在线观看 | 国产手机视频在线播放 | av免费观看在线 | 在线日韩一区 | 日本久久中文 | 在线观看91网站 | 欧美日韩在线网站 | 色综合久久88色综合天天免费 | 国产精品一区二区久久国产 | 久久国产精品区 | 96视频在线| 碰超在线观看 | av电影免费在线 | 91麻豆精品国产自产在线 | 最近的中文字幕大全免费版 | 日韩精品三区四区 | 免费能看的黄色片 | 国产黄色大片 | 欧美日韩中文字幕综合视频 | 粉嫩高清一区二区三区 | 99操视频 | 亚洲免费观看在线视频 | 一区二区中文字幕在线播放 | 手机av永久免费 | 爱射综合 | 久久免费av电影 | 韩国一区在线 | 在线免费观看成人 | 色爱区综合激月婷婷 | 日韩有码网站 | 日韩一级片大全 | 手机av电影在线 | 亚洲在线视频网站 | 91视频观看免费 | 久久婷婷久久 | 日韩美在线| 免费又黄又爽视频 | 久久久久国产一区二区三区四区 | 黄色激情网址 | 波多野结衣在线观看一区 | 精油按摩av| 亚洲视频每日更新 | 欧美日韩亚洲精品在线 | 最近免费中文字幕 | 99久久综合狠狠综合久久 | 色窝资源 | 在线免费高清视频 | 欧美日韩在线播放一区 | 天天操夜夜干 | 毛片一区二区 | 日韩性色 | 一区二区免费不卡在线 | 亚洲综合爱 | 一区中文字幕在线观看 | 九九九电影免费看 | 亚洲精品国产第一综合99久久 | 在线超碰av| 欧美日韩在线播放一区 | 久久毛片视频 | 一区 二区 精品 | 91中文字幕在线播放 | 激情五月网站 | 久草视频手机在线 | 国产女人40精品一区毛片视频 | www.五月激情.com | 97视频在线免费播放 | 婷婷六月久久 | 日本午夜免费福利视频 | 久久五月天综合 | 色综合天天色综合 | 日韩欧美精品在线观看 | 亚洲精品tv久久久久久久久久 | 日韩欧美一区二区不卡 | 成年在线观看 | 天天色天天射天天操 | 久久综合九色综合久99 | 成人性生交大片免费观看网站 | av在线一二三区 | 欧美怡红院视频 | 视频三区 | 亚洲精品中文在线资源 | 日日夜夜骑 | 国产精品综合av一区二区国产馆 | 国产精品视频地址 | 久草在线手机观看 | 成人免费观看av | 免费能看的黄色片 | 极品中文字幕 | 日本久久综合视频 | 手机在线日韩视频 | 久久永久免费视频 | 欧美一级片免费观看 | 午夜精品久久久久99热app | 亚洲视频在线观看网站 | 国产午夜精品久久久久久久久久 | 久久午夜剧场 | 国产视频一区二区在线观看 | 亚洲人天堂 | 国产不卡一二三区 | av中文字幕日韩 | 国产一级免费在线 | 婷婷在线五月 | 日韩精品一区电影 | 色wwwww| 99热 精品在线| 亚洲精品乱码久久久久久高潮 | 国产不卡一二三区 | 国产成人精品综合 | 日韩成人xxxx| 久久久精品久久 | 国产特级毛片aaaaaa高清 | 91视频链接 | 999国内精品永久免费视频 | 欧美日韩一区二区在线 | 在线成人欧美 | 91在线亚洲| 啪啪精品| 国产 字幕 制服 中文 在线 | 久操视频在线免费看 | 国产精品一区二区精品视频免费看 | 国产a国产a国产a | 久久综合导航 | 亚洲aⅴ乱码精品成人区 | 精品国产乱码久久久久久三级人 | 波多野结衣综合网 | 黄色一级片视频 | 在线观看不卡视频 | 在线a人v观看视频 | 日本免费一二三区 | 91视频免费看片 | 婷婷.com| 色综合久久五月 | 又污又黄的网站 | 亚洲欧美国内爽妇网 | 97视频在线免费观看 | 国产免费二区 | 中文字幕网站视频在线 | 国产黄色片在线 | 五月天久久久 | 97网在线观看 | 四虎成人在线 | 日本久久久久久久久 | 色综合色综合久久综合频道88 | 美女久久久久久久久久久 | 色网影音先锋 | 精品亚洲国产视频 | 婷婷午夜 | 偷拍视频一区 | 亚洲精品免费播放 | 丁五月婷婷 | 日本夜夜草视频网站 | 在线免费观看黄色av | 99精品国产在热久久 | 国产黄av| 欧美极品xxx | 亚洲视频 一区 | 黄色av一级片 | 美女黄久久 | 九九涩涩av台湾日本热热 | 91视频麻豆 | 久久精品国产一区二区三 | 久久久久蜜桃 | 99精品国产成人一区二区 | 美女网站视频久久 | 亚洲最新av在线 | 蜜桃视频在线视频 | 欧美成人69av | 日本黄色一级电影 | 成人免费在线观看av | 国产婷婷vvvv激情久 | 成人高清在线 | 亚洲视频久久久久 | 久久涩涩网站 | 天堂va在线高清一区 | 人人插人人插 | 久久久免费毛片 | 精品国产伦一区二区三区 | 在线成人观看 | 欧美在线free | 国产精品女主播一区二区三区 | 欧美人交a欧美精品 | 黄色亚洲 | 五月天久久久 | 日韩理论片 | 天天爽夜夜爽人人爽曰av | 精品高清视频 | 国产免费又爽又刺激在线观看 | 国产精品亚洲片夜色在线 | 国产精品免费一区二区 | 91传媒免费观看 | 成人亚洲精品久久久久 | 久久伊人精品一区二区三区 | 97超碰超碰 | 精品美女国产在线 | 91热视频在线观看 | 久久视频这里只有精品 | 免费黄色一区 | 美女久久99 | 毛片www | 久久影院午夜论 | 精品99免费视频 | 91在线porny国产在线看 | 国产精品久久久久久久久久久久午夜 | 欧洲激情综合 | 国产性天天综合网 | 美女搞黄国产视频网站 | 成人影片在线播放 | 98涩涩国产露脸精品国产网 | 色狠狠一区二区 | 国产区久久 | 亚洲综合在线播放 | 六月色婷 | 婷婷激情久久 | 最近高清中文字幕 | 国产黄色特级片 | 国产在线探花 | 国产精品热 | 激情丁香婷婷 | 色丁香婷婷 | 国产精品久久久久免费 | 天天干夜夜擦 | 婷婷国产一区二区三区 | 99精品国自产在线 | 91av在线精品 | 激情婷婷欧美 | 国产精品12 | 国产在线视频一区 | 99久久婷婷国产一区二区三区 | 日韩偷拍精品 | 久久99国产精品视频 | 久久久不卡影院 | 日本中文字幕在线看 | 高清在线一区二区 | av手机版 | 奇米网777| 国产亚洲免费的视频看 | 国产精品久久中文字幕 | 久久久精品久久 | 在线电影播放 | 精品国产免费久久 | 国产va精品免费观看 | 黄色官网在线观看 | 在线观看视频h | 色综合久 | 不卡的av | 婷婷久久五月 | www.色午夜.com | 97色在线观看免费视频 | 欧美va天堂在线电影 | www五月婷婷 | 久久99精品国产麻豆宅宅 | 波多野结依在线观看 | 丁香花中文在线免费观看 | 国产首页 | 久久伊人色综合 | 免费高清看电视网站 | av手机在线播放 | 久久国产精品99久久久久 | 免费一级日韩欧美性大片 | 中文字幕一区二区在线观看 | 在线免费黄网站 | 成年人免费在线播放 | 欧美亚洲一区二区在线 | 日日干精品 | 91视频麻豆 | 欧美网址在线观看 | 久久精品亚洲国产 | 丁香在线观看完整电影视频 | 91成人精品在线 | av中文字幕在线观看网站 | 久久久久 免费视频 | 美女国内精品自产拍在线播放 | 成人午夜在线观看 | 香蕉视频久久久 | 久久99国产精品久久 | 激情丁香久久 | 成人一级黄色片 | 精品国产一区二区三区四区vr | www.av免费观看 | aaa日本高清在线播放免费观看 | av电影一区二区 | av中文天堂 | 91视频免费看 | 成人试看120秒 | 欧美精品乱码久久久久久按摩 | 在线色亚洲 | 亚洲精品黄| 91精品视频免费看 | 久久久久9999亚洲精品 | 97超碰人人网 | 国产色视频123区 | 久久视了 | 日韩亚洲在线视频 | 亚洲精品大片www | 国产亚洲aⅴaaaaaa毛片 | 福利电影久久 | 国产亚洲视频系列 | 99视频网址| 欧女人精69xxxxxx | 国产白浆在线观看 | www久 | 日韩av免费一区二区 | 亚洲午夜久久久久 | 中文字幕视频一区 | 中文字幕在线观看资源 | 99国产精品一区 | 精品在线观看视频 | 亚洲天堂网在线视频观看 | 国产黄色片免费观看 | 久久国语露脸国产精品电影 | 亚洲成人精品在线 | 国产精品久久一卡二卡 | 国产一区网址 | 欧美精品久久久久久久久久 | 日本中文字幕在线电影 | 日韩av一区二区在线影视 | 国产精品久久久久久久久久久久午 | 久草网在线观看 | 一级黄色大片在线观看 | 99在线免费观看视频 | 毛片www | 国产色在线,com| 国产一级电影免费观看 | 免费高清在线观看成人 | 色综合天天综合 | 亚洲精品资源在线 | 亚洲伊人成综合网 | 亚洲欧美一区二区三区孕妇写真 | 在线看一级片 | 国产精品久久久久久模特 | 黄色免费在线看 | 91人人爽人人爽人人精88v | 91高清完整版在线观看 | 国产伦精品一区二区三区免费 | 五月综合| 亚洲手机天堂 | 中文av影院 | 69热国产视频 | 色黄视频免费观看 | 亚洲精品乱码久久久久久按摩 | 91chinesexxx| 日韩免费电影在线观看 | 欧美在线观看视频 | 在线亚洲天堂网 | 91免费版成人 | 成人av电影在线观看 | 一区二区不卡视频在线观看 | 欧美久久九九 | 麻豆影视在线观看 | 青青河边草免费观看 | 色吊丝在线永久观看最新版本 | 中文字幕在线日本 | 亚洲精品国产日韩 | 中文字幕在线视频一区二区 | 亚洲综合成人在线 | 日韩视频一二三区 | 日韩精品一区二区三区中文字幕 | 99热精品国产一区二区在线观看 | 中文字幕成人在线观看 | 久久九九影院 | 99精品免费久久久久久久久 | 日本久久精 | 美女在线免费观看视频 | 色七七亚洲影院 | 日日夜日日干 | 久久久国产一区 | 999久久国精品免费观看网站 | 久久免费在线观看 | 久久网站av | 国产一级黄大片 | 午夜av剧场| 久久精品国产一区二区 | 高清有码中文字幕 | 激情深爱.com | 在线观看深夜视频 | 四虎影视成人精品 | 涩五月婷婷| 亚洲高清在线视频 | 日韩电影一区二区三区 | 国产精品女主播一区二区三区 | 天天色综合久久 | 久久99国产精品免费网站 | 日韩av资源在线观看 | 一区二区三区在线免费播放 | 一区二区三区在线看 | 九九精品毛片 | 国产亚洲精品久久久久久网站 | 欧美动漫一区二区三区 | 视频91| 大荫蒂欧美视频另类xxxx | 婷婷色五| 中文字幕高清免费日韩视频在线 | 欧美日韩在线第一页 | 欧美有色| 日本久久免费电影 | 精品人妖videos欧美人妖 | 91香蕉视频在线 | 99re中文字幕 | 中文字幕 国产视频 | 7777精品伊人久久久大香线蕉 | 婷婷综合导航 | 玖玖玖影院 | 韩国中文三级 | 日韩美在线观看 | 制服丝袜在线 | 啪啪精品 | www视频在线播放 | 81国产精品久久久久久久久久 | 日韩欧美精品一区 | 久久国产一区 | 午夜三级大片 | 国产综合福利在线 | 欧美九九九 | 制服丝袜欧美 | 天天插天天干 | 日韩免费观看高清 | 成人av中文字幕在线观看 | 日韩影片在线观看 | 91在线精品视频 | 狠狠地操 | 国产高清精品在线观看 | 怡红院av久久久久久久 | 97超碰福利久久精品 | 国产一区二区综合 | 欧美日韩一区二区三区在线免费观看 | 久久久久久99精品 | 国产一区久久久 | 国产精品久久久久av免费 | 亚洲国产中文字幕在线观看 | 国产成人精品亚洲精品 | 日日夜夜精品视频天天综合网 | 色姑娘综合天天 | 在线免费黄色毛片 | 国产精品九九久久99视频 | 狠狠狠干 | 日韩在线高清视频 | 81精品国产乱码久久久久久 | 久久免费一 | 黄色免费网 | 91精品免费视频 | 久久天天躁狠狠躁夜夜不卡公司 | 91精品久久久久久久久久久久久 | 99精品偷拍视频一区二区三区 | 成人免费观看网站 | 久久男人视频 | 久久国产剧场电影 | 99久久久久 | 黄色成年片 | 国产亚洲情侣一区二区无 | 婷婷av电影 | 免费黄色网址大全 | 久久爱综合| 狠狠色综合欧美激情 | 欧美精选一区二区三区 | 手机在线小视频 | 久久免费高清 | 天天躁天天狠天天透 | 一区二区理论片 | 91av在线视频播放 | 99热最新在线 | 国产97在线观看 | 天天爱av导航 | 国产激情小视频在线观看 | 成x99人av在线www | 国产无吗一区二区三区在线欢 | 婷婷综合久久 | 香蕉影视在线观看 | 波多野结衣理论片 | 最近中文国产在线视频 | 国产中文字幕一区二区 | 色www精品视频在线观看 | 久草资源在线观看 | 在线观看一| 日韩在线看片 | 成人黄色大片在线观看 | 欧美一区中文字幕 | 久久精品在线视频 | 久久tv视频 | 500部大龄熟乱视频 欧美日本三级 | 五月天婷婷在线视频 | 麻豆精品视频在线观看免费 | 黄色片免费电影 | 亚洲第一区在线播放 | 人人插人人舔 | 精品国产观看 | 中文字幕xxxx| 九色91在线| 国产精品久久久 | 国产精品久久久久久久久久东京 | 亚洲一区日韩 | 日韩成人免费在线电影 | 久久久久成人精品免费播放动漫 | 国产精品毛片完整版 | 色99视频| 在线天堂视频 | 国产一区在线看 | 奇米影视8888在线观看大全免费 | 欧美激情综合五月 | 91麻豆精品国产91久久久久久 | 人人爽人人av | 国产视频久久久 | www.福利视频 | 天天综合网在线观看 | 欧美日韩在线视频观看 | 500部大龄熟乱视频 欧美日本三级 | 免费看色视频 | 97手机电影网 | 婷婷新五月 | 欧美亚洲另类在线视频 | 日韩欧美在线免费观看 | 久久欧美综合 | 91精品国产99久久久久久久 | 在线只有精品 | 少妇精品久久久一区二区免费 | 91香蕉视频在线下载 | 欧美日韩中文国产 | 97视频在线免费观看 | 国产色影院 | 福利视频网站 | 四虎影视成人永久免费观看亚洲欧美 | 黄网站免费大全入口 | 天堂av在线中文在线 | 免费观看视频黄 | 色香蕉在线视频 | 国产亚洲亚洲 | 天天操天天射天天插 | 国产精品2区 | 亚洲精品欧洲精品 | 一区二区三区免费在线 | 97免费公开视频 | 少妇搡bbbb搡bbb搡69 | 久久久久综合精品福利啪啪 | av福利超碰网站 | 亚洲h视频在线 | 亚洲欧美日韩国产精品一区午夜 | 国产精品美女久久久久久免费 | 人人澡人人爽欧一区 | 免费日韩| 最新国产在线视频 | 国产91免费观看 | 在线导航av | 青青草国产成人99久久 | 欧美日韩国产综合一区二区 | 亚洲电影一区二区 | 日本中文字幕一二区观 | 偷拍精偷拍精品欧洲亚洲网站 | 欧美一级特黄高清视频 | 韩国在线一区 | 色综合久久综合网 | 国产高清在线免费视频 | 日本中文字幕视频 | 国产97在线观看 | 久久国产成人午夜av影院潦草 | 亚洲国产一区二区精品专区 | 91大神在线观看视频 | 色婷婷色 | 国产精品av在线 | 国产黑丝一区二区 | av经典在线 | 久久久免费精品 | 九精品| 久久久久免费精品国产小说色大师 | 国产91影院| 国产99久久久国产 | 中文字幕中文字幕在线一区 | 欧美在线视频精品 | 免费中午字幕无吗 | 99国内精品 | 亚洲欧美日韩精品久久久 | av在线不卡观看 | 国产日韩精品在线观看 | 视频在线99re | 欧美日韩二三区 | 国产精品6 | 久久久久成人精品免费播放动漫 | 免费观看第二部31集 | 国产一级免费在线观看 | 亚洲不卡av一区二区三区 | 亚洲精品男人天堂 | 日本久草电影 | 激情五月婷婷网 | 国产中文字幕免费 | 中文字幕一区二区三区在线播放 | 亚洲精品一区二区精华 | 一区在线观看 | 中文字幕你懂的 | av不卡免费看 | 97视频在线观看网址 | 久久精品网| 久热爱| 中文字幕一区二区三区四区 | 国产亚洲片| 久久久午夜视频 | 日本一区二区不卡高清 | 黄色国产精品 | 伊人宗合网 | 国产精品黑丝在线观看 | 一区二区中文字幕在线观看 | 五月婷婷狠狠 | 色婷婷狠狠五月综合天色拍 | 国产成人av电影 | 成人精品一区二区三区中文字幕 | 日韩成片 | 国产亚洲久一区二区 | 91精品一区二区三区蜜臀 | 福利一区二区在线 | 中文区中文字幕免费看 | 免费av看片| 成年人看片网站 | 国产福利91精品张津瑜 | av亚洲产国偷v产偷v自拍小说 | 亚洲一区二区黄色 | 香蕉国产91| 91亚色免费视频 | 奇米先锋 | 日韩夜夜爽| 日韩在线视频在线观看 | av一区二区三区在线播放 |