久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Java 發(fā)送http請求(get、post)的示例

瀏覽:112日期:2022-08-22 09:03:31

1.情景展示

java發(fā)送get請求、post請求(form表單、json數據)至另一服務器;

可設置HTTP請求頭部信息,可以接收服務器返回cookie信息,可以上傳文件等;

2.代碼實現

所需jar包:httpcore-4.4.1.jar;httpclient-4.4.1.jar;httpmime-4.4.1.jar;epoint-utils-9.3.3.jar

import java.io.File;import java.io.IOException;import java.io.InputStream;import java.nio.charset.Charset;import java.security.GeneralSecurityException;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSession;import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpDelete;import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPatch;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpRequestBase;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.conn.ssl.TrustStrategy;import org.apache.http.entity.ContentType;import org.apache.http.entity.StringEntity;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.entity.mime.content.StringBody;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;import org.apache.http.message.BasicNameValuePair;import org.apache.http.ssl.SSLContextBuilder;import org.apache.http.util.EntityUtils;import com.epoint.core.utils.string.StringUtil;/** * HttpClient工具類,使用http-client包實現,原先的common-httpclient已經淘汰 * * @作者 ko * @version [版本號, 2017年10月18日] */public class HttpUtil{ private static PoolingHttpClientConnectionManager connMgr; private static RequestConfig requestConfig; private static final int MAX_TIMEOUT = 7000; /** * 直接以流返回 */ public static final int RTN_TYPE_1 = 1; /** * 直接以string返回 */ public static final int RTN_TYPE_2 = 2; /** * 以map返回,reslut:接口結果string;statusCode:http狀態(tài)碼 */ public static final int RTN_TYPE_3 = 3; /** * 以map返回,reslut:接口結果string;statusCode:http狀態(tài)碼;cookie:response的cookie * cookie值鍵值對,格式 key1=value1;key2=value2;... */ public static final int RTN_TYPE_4 = 4; /** * 默認上傳文件的文件流或file 的key Name */ private static final String DEFAULT_BINARYBODY_KEYNAME = 'file'; static {// 設置連接池connMgr = new PoolingHttpClientConnectionManager();// 設置連接池大小connMgr.setMaxTotal(100);connMgr.setDefaultMaxPerRoute(connMgr.getMaxTotal());// 在提交請求之前 測試連接是否可用connMgr.setValidateAfterInactivity(1); RequestConfig.Builder configBuilder = RequestConfig.custom();// 設置連接超時configBuilder.setConnectTimeout(MAX_TIMEOUT);// 設置讀取超時configBuilder.setSocketTimeout(MAX_TIMEOUT);// 設置從連接池獲取連接實例的超時configBuilder.setConnectionRequestTimeout(MAX_TIMEOUT);requestConfig = configBuilder.build(); } /** * 發(fā)送 GET請求 * * @param apiUrl * API接口URL * @return String 響應內容 */ public static String doGet(String apiUrl) {return doHttp(apiUrl, null, 'get', RTN_TYPE_2); } /** * 發(fā)送POST請求 * * @param apiUrl * API接口URL * @param params * K-V參數 * @return String 響應內容 */ public static String doPost(String apiUrl, Map<String, Object> params) {return doHttp(apiUrl, params, 'post', RTN_TYPE_2); } /** * 發(fā)送POST請求 * * @param apiUrl * API接口URL * @param json * json參數 * @return String 響應內容 */ public static String doPostJson(String apiUrl, String json) {return doHttp(apiUrl, json, 'post', RTN_TYPE_2); } /** * 發(fā)送 http 請求 * * @param apiUrl * API接口URL * @param params * {Map<String, Object> K-V形式、json字符串} * @param method * {null、或者post:POST請求、patch:PATCH請求、delete:DELETE請求、get:GET請求} * @param type * {HttpUtil.RTN_TYPE_1:請求返回stream(此時流需要在外部手動關閉);HttpUtil. * RTN_TYPE_2:string;HttpUtil.RTN_TYPE_3:返回一個map,map包含結果( * 結果是string形式)以及http狀態(tài)碼;HttpUtil.RTN_TYPE_4:返回一個map,map包含結果( * 結果是string形式), http狀態(tài)碼和cookie;其他情況返回string} * 如果結果是個map,key為:result,statusCode,cookie,分別返回 結果 * string,http狀態(tài)碼,cookie; cookie值鍵值對,格式 * key1=value1;key2=value2;... * @return stream或 string 或 map */ public static <T> T doHttp(String apiUrl, Object params, String method, int type) {return doHttp(apiUrl, null, params, method, type); } /** * 發(fā)送 http 請求 * * @param apiUrl * API接口URL * @param headerMap * header信息Map<String, String>,可設置cookie * @param params * {Map<String, Object> K-V形式、json字符串} * @param method * {null、或者post:POST請求、patch:PATCH請求、delete:DELETE請求、get:GET請求} * @param type * {HttpUtil.RTN_TYPE_1:請求返回stream(此時流需要在外部手動關閉);HttpUtil. * RTN_TYPE_2:string;HttpUtil.RTN_TYPE_3:返回一個map,map包含結果( * 結果是string形式)以及http狀態(tài)碼;HttpUtil.RTN_TYPE_4:返回一個map,map包含結果( * 結果是string形式), http狀態(tài)碼和cookie;其他情況返回string} * 如果結果是個map,key為:result,statusCode,cookie,分別返回 結果 * string,http狀態(tài)碼,cookie; cookie值鍵值對,格式 * key1=value1;key2=value2;... * @return stream或 string 或 map */ public static <T> T doHttp(String apiUrl, Map<String, String> headerMap, Object params, String method, int type) {CloseableHttpClient httpClient = null;if (isSSL(apiUrl)) { httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()) .setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build();}else { httpClient = HttpClients.createDefault();}return doHttp(httpClient, apiUrl, headerMap, params, method, type); } /** * 發(fā)送 http 請求 * * @param httpClient * httpclient對象 由外部傳入,用戶 需要保持登錄狀態(tài)等情況 此時如果要ssl,那么要在外部加入ssl特性 * httpClient = * HttpClients.custom().setSSLSocketFactory(HttpUtil. * createSSLConnSocketFactory()) * .setConnectionManager(HttpUtil.getConnMgr()). * setDefaultRequestConfig(HttpUtil..getRequestConfig()).build(); * @param apiUrl * API接口URL * @param headerMap * header信息Map<String, String>,可設置cookie * * @param params * {Map<String, Object> K-V形式、json字符串} * @param method * {null、或者post:POST請求、patch:PATCH請求、delete:DELETE請求、get:GET請求} * @param type * {HttpUtil.RTN_TYPE_1:請求返回stream(此時流需要在外部手動關閉);HttpUtil. * RTN_TYPE_2:string;HttpUtil.RTN_TYPE_3:返回一個map,map包含結果( * 結果是string形式)以及http狀態(tài)碼;HttpUtil.RTN_TYPE_4:返回一個map,map包含結果( * 結果是string形式), http狀態(tài)碼和cookie;其他情況返回string} * 如果結果是個map,key為:result,statusCode,cookie,分別返回 結果 * string,http狀態(tài)碼,cookie; cookie值鍵值對,格式 * key1=value1;key2=value2;... * @return stream或 string 或 map */ @SuppressWarnings('unchecked') public static <T> T doHttp(CloseableHttpClient httpClient, String apiUrl, Map<String, String> headerMap, Object params, String method, int type) {HttpRequestBase httpPost = null;if (StringUtil.isNotBlank(method)) { if ('patch'.equalsIgnoreCase(method)) {httpPost = new HttpPatch(apiUrl); } else if ('delete'.equalsIgnoreCase(method)) {httpPost = new HttpDelete(apiUrl); } else if ('get'.equalsIgnoreCase(method)) {httpPost = new HttpGet(apiUrl); } else if ('post'.equalsIgnoreCase(method)) {httpPost = new HttpPost(apiUrl); }}else { httpPost = new HttpPost(apiUrl);}CloseableHttpResponse response = null; try { // 設置header信息 if (headerMap != null && !headerMap.isEmpty()) {for (Map.Entry<String, String> entry : headerMap.entrySet()) { httpPost.addHeader(entry.getKey(), entry.getValue());} } if (isSSL(apiUrl)) {httpPost.setConfig(requestConfig); } // 參數不為null、要處理參數 if (params != null) {// get請求拼接在url后面if (httpPost instanceof HttpGet) { StringBuffer param = new StringBuffer(); if (params instanceof Map) {Map<String, Object> paramsConvert = (Map<String, Object>) params;int i = 0;for (String key : paramsConvert.keySet()) { if (i == 0)param.append('?'); elseparam.append('&'); param.append(key).append('=').append(paramsConvert.get(key)); i++;} } else {param.append('?' + params.toString()); } apiUrl += param;}// delete請求暫不處理else if (!(httpPost instanceof HttpDelete)) { // K-V形式 if (params instanceof Map) {Map<String, Object> paramsConvert = (Map<String, Object>) params; List<NameValuePair> pairList = new ArrayList<>(paramsConvert.size());for (Map.Entry<String, Object> entry : paramsConvert.entrySet()) { NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue() == null ? '' : entry.getValue().toString()); pairList.add(pair);}((HttpEntityEnclosingRequestBase) httpPost).setEntity(new UrlEncodedFormEntity(pairList, Charset.forName('UTF-8'))); } // json格式 else {StringEntity stringEntity = new StringEntity(params.toString(), 'UTF-8');stringEntity.setContentEncoding('UTF-8');stringEntity.setContentType('application/json');((HttpEntityEnclosingRequestBase) httpPost).setEntity(stringEntity); }} } response = httpClient.execute(httpPost); // int statusCode = response.getStatusLine().getStatusCode(); // if (statusCode != HttpStatus.SC_OK) { // return null; // } HttpEntity entity = response.getEntity(); if (entity != null) {if (type == RTN_TYPE_1) { return (T) entity.getContent();}else if (RTN_TYPE_2 == type) { return (T) EntityUtils.toString(entity, 'UTF-8');}else if (RTN_TYPE_3 == type || RTN_TYPE_4 == type) { Map<String, String> rtnMap = new HashMap<String, String>(); rtnMap.put('result', EntityUtils.toString(entity, 'UTF-8')); rtnMap.put('statusCode', response.getStatusLine().getStatusCode() + ''); if (RTN_TYPE_4 == type) {rtnMap.put('cookie', getCookie(response)); } return (T) rtnMap;}else { return (T) EntityUtils.toString(entity, 'UTF-8');} }}catch (Exception e) { e.printStackTrace();}finally { if (response != null && type != RTN_TYPE_1) {try { EntityUtils.consume(response.getEntity());}catch (IOException e) { e.printStackTrace();} }}return null; } /** * 上傳附件(post形式) * * @param url * 請求地址 * @param headerMap * header參數map Map<String, String> * @param paramMap * 額外的參數map,Map<String, String> * @param file * 可以選擇本地文件上傳;如果傳了file,又傳了fileName,那么文件名以fileName為準,否則 是file的文件名 * @param fileName * 以流傳輸時,必須指定文件名 * @param ssl * 是否需要ssl * @return result,返回上傳結果,如果接口沒有返回值,則為狀態(tài)碼 */ public static String upload(String url, Map<String, String> headerMap, Map<String, String> paramMap, File file, String fileName, boolean ssl) {return upload(url, headerMap, paramMap, file, null, fileName, ssl); } /** * 上傳附件(post形式) * * @param url * 請求地址 * @param headerMap * header參數map Map<String, String> * @param paramMap * 額外的參數map,Map<String, String> * @param in * 文件流 * @param fileName * 以流傳輸時,必須指定文件名 * @param ssl * 是否需要ssl * @return result,返回上傳結果,如果接口沒有返回值,則為狀態(tài)碼 */ public static String upload(String url, Map<String, String> headerMap, Map<String, String> paramMap, InputStream in, String fileName, boolean ssl) {return upload(url, headerMap, paramMap, null, in, fileName, ssl); } /** * 上傳附件(post形式) * * @param httpClient * 外部傳入httpClient * @param url * 請求地址 * @param headerMap * header參數map Map<String, String> * @param paramMap * 額外的參數map,Map<String, String> * @param file * 可以選擇本地文件上傳;如果傳了file,又傳了fileName,那么文件名以fileName為準,否則 是file的文件名 * @param fileName * 以流傳輸時,必須指定文件名 * @param ssl * 是否需要ssl * @return result,返回上傳結果,如果接口沒有返回值,則為狀態(tài)碼 */ public static String upload(CloseableHttpClient httpClient, String url, Map<String, String> headerMap, Map<String, String> paramMap, File file, String fileName, boolean ssl) {return upload(httpClient, url, headerMap, paramMap, file, null, fileName, ssl); } /** * 上傳附件(post形式) * * @param httpClient * 外部傳入httpClient * @param url * 請求地址 * @param headerMap * header參數map Map<String, String> * @param paramMap * 額外的參數map,Map<String, String> * @param in * 文件流 * @param fileName * 以流傳輸時,必須指定文件名 * @param ssl * 是否需要ssl * @return result,返回上傳結果,如果接口沒有返回值,則為狀態(tài)碼 */ public static String upload(CloseableHttpClient httpClient, String url, Map<String, String> headerMap, Map<String, String> paramMap, InputStream in, String fileName, boolean ssl) {return upload(httpClient, url, headerMap, paramMap, null, in, fileName, ssl); } /** * 上傳附件(post形式) * * @param url * 請求地址 * @param headerMap * header參數map Map<String, String> * @param paramMap * 額外的參數map,Map<String, String> * @param file * 可以選擇本地文件上傳,file,in互斥;如果傳了file,又傳了fileName,那么文件名以fileName為準,否則 * 是file的文件名 * @param in * 文件流 * @param fileName * 以流傳輸時,必須指定文件名 * @param ssl * 是否需要ssl * @return result,返回上傳結果,如果接口沒有返回值,則為狀態(tài)碼 */ private static String upload(String url, Map<String, String> headerMap, Map<String, String> paramMap, File file, InputStream in, String fileName, boolean ssl) {CloseableHttpClient httpClient = null;if (ssl) { httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()) .setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build();}else { httpClient = HttpClients.createDefault();}return upload(httpClient, url, headerMap, paramMap, file, in, fileName, ssl); } /** * 上傳附件(post形式) * * @param httpClient * 外部傳入httpClient * @param url * 請求地址 * @param headerMap * header參數map Map<String, String> * @param paramMap * 額外的參數map,Map<String, String> * @param file * 可以選擇本地文件上傳,file,in互斥;如果傳了file,又傳了fileName,那么文件名以fileName為準,否則 * 是file的文件名 * @param in * 文件流 * @param fileName * 以流傳輸時,必須指定文件名 * @param ssl * 是否需要ssl * @return result,返回上傳結果,如果接口沒有返回值,則為狀態(tài)碼 */ private static String upload(CloseableHttpClient httpClient, String url, Map<String, String> headerMap, Map<String, String> paramMap, File file, InputStream in, String fileName, boolean ssl) {String result = '';CloseableHttpResponse response = null;try { HttpPost httpPost = new HttpPost(url); // 設置header信息 if (headerMap != null && !headerMap.isEmpty()) {for (Map.Entry<String, String> entry : headerMap.entrySet()) { httpPost.addHeader(entry.getKey(), entry.getValue());} } if (ssl) {httpPost.setConfig(requestConfig); } MultipartEntityBuilder builder = MultipartEntityBuilder.create(); // 選擇以file形式上傳 if (file != null && file.exists()) {if (StringUtil.isNotBlank(fileName)) { builder.addBinaryBody(DEFAULT_BINARYBODY_KEYNAME, file, ContentType.DEFAULT_BINARY, fileName);}else { builder.addBinaryBody(DEFAULT_BINARYBODY_KEYNAME, file);} } // 以流上傳 else if (in != null && StringUtil.isNotBlank(fileName)) {builder.addBinaryBody(DEFAULT_BINARYBODY_KEYNAME, in, ContentType.DEFAULT_BINARY, fileName); } if (paramMap != null && !paramMap.isEmpty()) {for (Map.Entry<String, String> entry : paramMap.entrySet()) { builder.addPart(entry.getKey(), new StringBody(entry.getValue(), ContentType.TEXT_PLAIN));} } HttpEntity reqEntity = builder.build(); httpPost.setEntity(reqEntity); response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); if (entity != null) {result = EntityUtils.toString(entity, 'UTF-8'); } else {result = response.getStatusLine().getStatusCode() + ''; }}catch (Exception e) { e.printStackTrace();}finally { if (response != null) {try { EntityUtils.consume(response.getEntity());}catch (IOException e) { e.printStackTrace();} }}return result; } private static String getCookie(HttpResponse httpResponse) {Map<String, String> cookieMap = new HashMap<String, String>(64);Header headers[] = httpResponse.getHeaders('Set-Cookie');if (headers == null || headers.length == 0) { return null;}String cookie = '';for (int i = 0; i < headers.length; i++) { cookie += headers[i].getValue(); if (i != headers.length - 1) {cookie += ';'; }}String cookies[] = cookie.split(';');for (String c : cookies) { c = c.trim(); if (cookieMap.containsKey(c.split('=')[0])) {cookieMap.remove(c.split('=')[0]); } cookieMap.put(c.split('=')[0], c.split('=').length == 1 ? '' : (c.split('=').length == 2 ? c.split('=')[1] : c.split('=', 2)[1]));}String cookiesTmp = '';for (String key : cookieMap.keySet()) { cookiesTmp += key + '=' + cookieMap.get(key) + ';';}return cookiesTmp.substring(0, cookiesTmp.length() - 2); } /** * 創(chuàng)建SSL安全連接 * * @return */ public static SSLConnectionSocketFactory createSSLConnSocketFactory() {SSLConnectionSocketFactory sslsf = null;try { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true;} }).build(); sslsf = new SSLConnectionSocketFactory(sslContext, new HostnameVerifier() { @Overridepublic boolean verify(String arg0, SSLSession arg1) { return true;} });}catch (GeneralSecurityException e) { e.printStackTrace();}return sslsf; } public static PoolingHttpClientConnectionManager getConnMgr() {return connMgr; } public static RequestConfig getRequestConfig() {return requestConfig; } private static boolean isSSL(String apiUrl) {if (apiUrl.indexOf('https') != -1 ) { return true;}else { return false;} } }

以上就是Java 發(fā)送http請求(get、post)的示例的詳細內容,更多關于Java 發(fā)送http請求的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 日韩精品一区二区三区中文字幕 | 91一区二区三区 | 日日做 | sis001亚洲原创区 | 成人性视频免费网站 | 免费在线黄| 亚洲免费在线看 | 久久综合九色综合欧美狠狠 | 国产精品一区二区三区在线 | h小视频 | 色精品| 亚洲精品一区二区三区蜜桃久 | 国产精品久久久久久吹潮 | 精品国产乱码一区二区三区 | 久久久久久毛片免费播放 | 在线成人av | 欧美性一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 国产高清视频在线观看 | 午夜电影网址 | 国产精品18久久久久久首页狼 | 国产一区二区免费电影 | 欧美日韩中 | 一级特黄 | 91亚洲国产成人久久精品网站 | 欧美日韩欧美日韩 | 99视频只有精品 | 成人精品视频一区二区三区 | 97久久超碰| 色官网| 视频精品一区二区三区 | 羞羞视频在线观看视频 | 亚洲精品乱码久久久久膏 | 91福利影院在线观看 | 综合国产| 欧美精品一区二区三区视频 | 成人小视频在线看 | 久在线 | 视频福利一区 | xvideos.蜜桃一区二区 | 亚洲免费在线视频 | 精品自拍视频 | 91xxx在线观看 | 国产精品久久久久久久久久99 | 男女网站视频 | 成人免费网站在线观看 | 成人国产在线 | 综合一区二区三区 | 最新日韩av | 成人一区二区三区在线观看 | 麻豆毛片 | a免费在线 | 久久综合一区二区 | 青青草久草 | 精品视频在线免费 | 欧美另类专区 | 日韩在线小视频 | 国产精品无码永久免费888 | 午夜av电影| 国产二区三区 | 操操日 | 国产一区二区在线播放 | 国产在线精品一区二区三区 | 亚洲成a | 日韩欧美精品一区二区三区 | 国产精品久久久久久久久免费高清 | 色婷婷久久久swag精品 | 久草高清 | 国产农村妇女精品久久 | 山岸逢花在线 | 五月天婷婷精品 | aaa在线 | 国产91对白叫床清晰播放 | 一区二区三区有限公司 | a级在线免费视频 | 亚洲永久精品www | 国产成人片 | 亚洲综合视频 | 中文字幕 在线观看 | 日本亚洲精品成人欧美一区 | 色.com| 午夜影院免费版 | 日韩毛片在线视频 | 久草成人网 | 激情视频在线观看 | 国产日韩在线播放 | 欧美精品99| 亚洲人成人一区二区在线观看 | 91国视频| 欧美成人精品在线 | 欧美大成色www永久网站婷 | 一级黄色av片 | 日韩一区二区视频在线 | 国产亚洲精品精品国产亚洲综合 | 欧美 日本 国产 | 97国产超碰 | 国产成人综合网 | 久久精品国产亚卅av嘿嘿 | 亚洲黄色一区二区 | 欧洲亚洲视频 | 国产乱码精品一区二区三区手机版 | 国产69久久 | 中文在线资源 | 成人欧美一区二区三区白人 | 品久久久久久久久久96高清 | 欧美一级全黄 | 欧美成人久久 | 国产精品一区久久久久 | 伊人久久国产 | 久草院线 | 午夜国产精品视频 | 蜜月久综合久久综合国产 | 色黄视频在线看 | 91亚洲视频| 99爱免费视频| 久久国内免费视频 | 青青久久久 | 国产精品久热 | 亚洲一区二区在线播放 | 一级片免费在线 | 视频精品一区 | 欧美一区二区大片 | 欧美精品在线观看免费 | 亚洲免费成人 | 99精品久久精品一区二区爱城 | 欧美色性| 欧美国产日本一区 | 一区二区电影 | 国产乱码精品一区二区三区爽爽爽 | 亚洲国产精品久久 | 最新的黄色网址 | 欧美精品综合 | 国产日韩精品一区二区 | 亚洲视频免费在线观看 | 亚洲人成一区 | 久久99深爱久久99精品 | av大全在线| 黄网免费 | 免费成人av | 成年人黄色一级片 | 欧美性猛交xxxx黑人猛交 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 国产午夜精品一区二区三区视频 | 久久人人爽人人爽人人片av高清 | 成人在线播放器 | 国产成人在线免费观看 | 日韩在线观看一区 | 日比视频网站 | 日韩午夜影院 | 国产精品久久久久久久9999 | 精品国产乱码久久久久久久软件 | 一级黄片毛片 | 国产伦精品一区二区三区高清 | 性色视频免费观看 | 日本在线视频观看 | 免费观看的av| 在线成人av| 福利网址 | 91av在线视频播放 | 色av综合 | 久久九九这里只有精品 | 麻豆高清免费国产一区 | 免费亚洲婷婷 | 97超碰在线播放 | 这里精品| 人人九九| 欧美成人一区二区 | 一级色视频 | 日韩一区电影 | 午夜影院免费观看视频 | 成人亚洲天堂 | 91在线中文| 天天夜夜操 | 在线久草 | 久久高清精品 | 亚洲视频在线观看免费 | 激情六月综合 | 亚洲电影一区二区三区 | 精品亚洲视频在线观看 | 亚洲欧美综合精品久久成人 | 精品日韩欧美一区二区三区在线播放 | 99青青草 | 黄色一级片黄色一级片 | 成人高清视频在线观看 | 欧美久久视频 | 三级国产网站 | 91精品国产综合久久久久久丝袜 | 久久99久久98精品免观看软件 | 国产欧美精品一区二区三区四区 | 精品国产乱码久久久久久88av | 亚洲黄色av网站 | 自拍视频在线播放 | 午夜av在线 | 国内精品久久久久久中文字幕 | 成人在线片 | 午夜在线 | 天堂在线网 | 久久精品在线观看视频 | 欧美精产国品一二三区 | 久久精品无码一区二区三区 | 国产香蕉97碰碰久久人人九色 | 男人久久天堂 | 免费在线成人 | 久久久久久久久久一区二区 | 天天夜夜操 | 亚洲永久免费视频 | 国产精品久久久久久二区 | 亚洲1区2区在线 | 久久蜜桃av一区二区天堂 | 色国产精品 | 四虎影院最新地址 | 亚洲码欧美码一区二区三区 | 日韩色av| 国产中文在线 | 国产精品夜色一区二区三区 | 国产精品一二 | 成人影院av| 欧美精品入口蜜桃 | 国产精品爱久久久久久久 | 亚州av | 可以免费看黄视频的网站 | 狠狠ri | 一区在线视频 | 亚洲综合在线一区 | 欧美福利一区二区三区 | 亚洲精品成人 | 日韩在线免费观看网站 | 亚洲精品成人悠悠色影视 | 国产一区二区久久久 | 97在线观看视频 | av中文字幕在线 | 国产成人精品一区二区三区四区 | 欧美日一区二区 | 天堂中文视频在线观看 | 国产日韩欧美精品一区二区三区 | 国产成人一区二区 | 久久tv在线观看 | 日本久久精品 | 欧美一区二区三区久久精品 | 曰韩中文字幕 | 99免费在线观看视频 | 亚洲一区二区福利 | 欧美精产国品一二三区 | 黄色的视频免费 | 山岸逢花在线观看无删减 | 精品久久久久国产免费 | 国产精彩视频 | 91精品国产综合久久久久久丝袜 | 国产福利精品一区 | 91精品亚洲 | 精品一区二区三区蜜桃 | 中文字幕av亚洲精品一部二部 | 国产午夜精品一区二区三区 | 欧美亚洲视频 | 国产在线精品一区二区三区 | 久久99精品久久久久国产越南 | 欧美理论片在线 | 91久久久www播放日本观看 | 91午夜激情 | 91精品一区 | 欧美在线观看禁18 | www.you日本| 互换娇妻呻吟hd中文字幕 | 免费观看国产精品 | 精品视频在线观看 | 国产高清精品一区二区三区 | 曰韩在线 | 在线播放亚洲 | 欧美在线视频一区二区 | 久久先锋| 亚洲爽爽 | 亚洲免费在线视频 | 亚洲 欧美 日韩 在线 | 黄色天堂在线观看 | 99久久婷婷国产综合精品电影 | 99久久精品国产一区二区成人 | 亚洲精品视频在线观看网站 | 精品免费国产一区二区三区 | 久久亚洲天堂 | 亚洲成年人影院 | 国产九九九 | 日韩成人av在线 | 国产羞羞视频免费在线观看 | 日韩性精品| 一级高清 | 在线观看毛片视频 | 玖玖操| 91免费网| 欧美日韩伊人 | 亚洲精品免费看 | 亚洲精品乱码 | 成年人网站国产 | 精品成人网 | www.欧美亚洲 | 精品国产精品国产偷麻豆 | 中文字幕成人影院 | 国产真实乱全部视频 | 暖暖日本在线视频 | 成人av影片在线观看 | 国产伦精品一区二区三区高清 | 91人人 | 国产精品国产精品国产专区不片 | 国产小视频在线播放 | 中文字幕亚洲一区二区三区 | 欧美日韩在线一区二区三区 | 午夜免费福利电影 | 欧美精品亚洲精品日韩精品 | 午夜电影在线看 | 伊人网站 | 91观看| 99国产精品久久久久久久 | 免费观看的黄色 | 狠狠插狠狠操 | 四虎影院在线免费播放 | 欧美精品导航 | www.国产视频 | 日本一区二区三区四区视频 | 欧美精品一区二区三区一线天视频 | 在线高清av| 久久久一区二区 | 亚洲精品9999 | 欧美黑人一级毛片 | 亚洲精品一区二区三区四区高清 | 午夜色播| 亚洲免费视频一区二区 | 欧美午夜精品久久久 | 九色av| 久久久久久一区 | 免费av毛片| 99av| 精品国产依人香蕉在线精品 | 欧美在线观看一区 | 欧美日韩国产一区二区三区不卡 | 老黄网站在线观看 | 成年视频在线观看福利资源 | 99视频网| 国产精品久久久久久久久久久久 | 日韩激情视频一区 | 国产亚洲二区 | 成人免费视频网站在线看 | 亚洲一区二区三区视频 | 色婷婷久久一区二区三区麻豆 | 综合色九九 | 中文字幕91| 日韩欧美精品一区二区三区 | 午夜在线视频 | 在线观看日韩av | 国产精品久久久久久久一区探花 | 成人在线高清视频 | 国产不卡在线 | yy6080久久伦理一区二区 | 亚洲精品日韩激情在线电影 | 一本一道久久精品综合 | 久久婷婷欧美 | 午夜小视频在线观看 | 91精品视频在线播放 | 欧美激情综合色综合啪啪五月 | 国产精品日韩欧美一区二区 | 涩涩视频网站在线观看 | 亚洲精品国产一区 | 国产一级一级国产 | 操人网址| 亚洲午夜视频 | 日本精品免费观看 | 国产精品中文字幕在线播放 | 一区二区三区精品 | 日韩理论在线 | 日韩91| 我和我的祖国电影在线观看免费版高清 | 色综合网址 | 大乳videos巨大吃奶 | 亚洲视频精品 | 精品国产乱码久久久久久1区2区 | 色一情一乱一伦一区二区三区 | 亚洲视频中文字幕 | 日b片| 亚洲国产成人久久 | 日韩一区二区成人 | 国产激情精品一区二区三区 | 日韩中文字幕在线播放 | 国产午夜精品一区二区三区视频 | 亚洲精品3| 精品久久精品 | 叶山小百合av一区二区 | 精品亚洲一区二区三区 | 91小视频网站| 国产77777| 国产精品资源在线 | 精品视频一区二区三区在线观看 | 2022中文字幕 | www.黄网| 日本免费在线 | 亚洲精品中文字幕中文字幕 | 91精品国产高清一区二区三区 | 97国产精品视频人人做人人爱 | 亚洲视频一 | 欧美日韩精品一区二区三区在线观看 | 日韩一区二区视频 | 亚洲乱码二区 | 国产日韩一区二区三区 | 欧美∨a| 精品自拍视频 | 久久男女 | 欧美精品一区二区三区四区 | 亚洲久视频| 操操日 | 亚洲精品久久久久久下一站 | 免费观看黄视频 | 一级欧美一级日韩 | 91精品国产91久久久久久吃药 | 国产精品久久久久久 | 波多野结衣三区 | 国产精品视频一区二区三区 | 精品久久久久久久 | 久久黄色 | 青青草一区 | 男人的天堂久久 | 午夜专区 | 国产日韩精品视频 | 国产精品久久久久一区二区三区 | www.成人 | 国产精品久久婷婷六月丁香 | 欧美精品tv | 欧美一区二区三 | 在线视频 亚洲 | 少妇激烈床戏视频 | 国产精品久久久久久久久久 | 日韩成人在线观看视频 | 久久综合入口 | 91在线观看视频 | 蜜臀精品 | 天天插天天操天天干 | 欧美日韩视频一区二区 | 成人欧美一区二区三区黑人孕妇 | 国产精品一区二区三区四区 | 亚洲激情av | 欧美综合视频在线观看 | 久久久久久久久久毛片 | 精品免费国产 | 在线播放国产一区二区三区 | 黄色一级免费看 | 久久99精品国产.久久久久 | 欧美在线不卡 | 久久免费小视频 | 欧美一区二区三区xxxx监狱 | 99re国产 | 日韩精品一区二区三区在线 | 亚洲人成网站999久久久综合 | 婷婷免费视频 | 精品国产黄a∨片高清在线 激情网站免费 | 亚洲毛片在线观看 | 天堂伊人网 | 亚洲a级在线观看 | 黄色一级网站 | 香蕉大人久久国产成人av | 在线播放国产一区二区三区 | 日韩成人精品 | 亚洲成人一区 | 99国产视频 | 国产精品久久久久永久免费观看 | 欧美1区 | 亚洲国产成人久久 | 激情小说综合网 | 久久9久久 | 成人精品视频99在线观看免费 | 久久免费精品 | 吊视频一区二区三区 | 亚洲高清免费视频 | 欧洲精品视频一区 | 亚洲情欲网 | 日韩高清中文字幕 | 精品久久久久久国产 | 欧美精品一区二区三区在线四季 | 毛片免费观看 | 精品国产污网站污在线观看15 | 91亚洲视频 | 日韩在线成人 | 久久99精品久久久久久按摩秒播 | 草草草久久久 | 久久精品99国产精品日本 | 国产精品中文字幕在线播放 | 国产精品久久一区 | 欧美二区精品 | 国产精品成人久久久久 | 一区二区三区高清不卡 | 视频一区二 | 日韩精品一区二区三区视频播放 | 久久国产精品视频 | 一区二区精品 | 亚洲成av人片在线观看 | 91福利在线播放 | 亚州av在线 | 成人亚洲视频在线观看 | 亚洲免费在线观看 | 51ⅴ精品国产91久久久久久 | 欧美中文在线 | 久久99深爱久久99精品 | 乱人伦xxxx国语对白 | 久久精品一区二区三区不卡牛牛 | 91视频在线观看 | 国产精品久久嫩一区二区 免费 | 四虎永久在线观看 | 欧美成人精品一区二区三区 | 国产精品久久久久久久久动漫 | 午夜影视免费观看 | 老妇激情毛片免费 | 黄色三级视频 | 国产日韩视频 | 精品一区二区久久久久久久网站 | 日韩视频一区在线观看 | 免费国产网站 | 亚洲午夜av| 最新av网址大全 | 成人免费黄色片 | 亚洲欧美中文日韩在线v日本 | 欧美成人午夜视频 | 天天操天天碰 | 亚洲香蕉视频 | 久久精品久久久 | 一区二区三区视频在线播放 | 欧美成人精品在线观看 | 亚洲精品一区二区三区中文字幕 | 免费v片| 国产成人av在线播放 | 中文字幕天天操 | 久久精品亚洲精品 | 欧美一区二区三区在线观看 | 久久这里只有精品免费 | 精品国产欧美一区二区 | 国产精品成人一区二区三区 | 日韩视频在线观看一区二区 | 本道综合精品 | 黄色永久网站 | 国产福利一区二区 | 亚洲欧美一 | 日韩中文字幕免费视频 | 欧美高清性xxxxhdvideosex | 国产精品久久久久久久久久三级 | 亚洲午夜精品a | 国产一级黄色大片 | 精品午夜久久久 | 国产精品91久久久久 | 国产一区二区日韩 | 欧美日韩一区二区视频在线观看 | 欧美一级片免费观看 | 日韩中文字幕在线观看 | 日本在线网 | 在线观看www| 日韩一区在线视频 | 99精品一区二区三区 | 色天天综合久久久久综合片 | 国产在线一二三区 | 欧美午夜精品一区二区三区电影 | 天天草天天插 | 在线视频自拍 | 国产精品视频导航 | 一级毛片在线 | 91免费观看视频 | 91视频免费看 | 国产精品国色综合久久 | 91啪影院| 国产精品久久久久久久久久久新郎 | 日韩视频一区二区三区四区 | 欧美日韩成人免费 | 精品国产一区二区三区日日嗨 | 免费v片 | 久久99精品国产自在现线 | 伊人网站 | 国产成人精品一区二区三区四区 | 涩涩天堂 | 成人影院www在线观看 | 蜜桃视频麻豆女神沈芯语免费观看 | 中文字幕日韩一区二区三区 | 欧美激情专区 | 亚洲一区二区在线 | 亚洲一区二区三区四区在线 | 日韩欧美一区二区三区久久婷婷 | 狠狠色丁香婷婷综合 | 久久久久久99 | 精品亚洲永久免费精品 | 亚洲区在线 | 成人久久18免费观看 | 欧美日韩一区二区在线 | 久久电影国产 | 精品福利av导航 | 日韩在线www| 少妇黄色 | 久久99热精品免费观看牛牛 | 国产淫片在线观看 | 天堂免费在线观看视频 | 亚洲成人精品 | 91国自产精品中文字幕亚洲 | 国产欧美综合一区二区三区 | 国产乱码精品一区二区三 | 成人免费毛片嘿嘿连载视频 | 亚洲一区二区在线 | 国产精品九九九 | 日韩成人免费电影 | 欧美在线a | 久久综合色88| 一本一道久久精品综合 | 久久av资源网 | 中文字幕第一页在线 | aaaaaaa片毛片免费观看 | 欧美国产综合 | 波多野吉衣网站 | 日韩美女av在线 | 国产精品久久免费看 | 国产精品看片 | 亚洲综合色视频在线观看 | 亚洲欧美综合 | 亚洲国产高清高潮精品美女 | 日韩一区二区在线观看 | 岛国a视频 | 欧美78videosex性欧美 |