亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

SmartPhone手機上查看QQ天氣預報

2019-11-18 19:21:48
字體:
來源:轉載
供稿:網友

  智能手機應用程序開發是軟件開發的一個新的熱點,但如何才能跨入這道門楣呢?今天我通過為自己的多普達565手機添加一個天氣預報程序來向大家講解一下。我們都知道QQ有一個免費提供給Blog引用的天氣預報服務網址http://appnews.qq.com/cgi-bin/news_qq_search?city=上海(上海是我自己所在城市,如果想看自己的城市,在瀏覽器中改成城市名稱即可),現在我使用QQ提供的這個服務,將其包裝部署為一個Web服務,并編寫程序使得我的多普達565智能手機能使用這個Web服務。

  設備要求:

  PC開發環境:Windows xp SP2,Visual Studio 2003.NET,.NET Framework 1.1 SP1

  操作系統:Windows Mobile(TM) 2003第二版,版本4.21.1088(Build 14235.2.0.0)

  智能手機:多普達565

  一、環境安裝

  首先我們必須安裝.NET Mobile所需要的開發環境,必須安裝的軟件(如下軟件都是微軟提供免費下載和使用的)

  1、Microsoft ActiveSync 3.7.1

  下載網址:http://www.microsoft.com/windowsmobile/downloads/activesync37.mspx,里面有中文版本,或者,在手機附帶的微軟光盤里面有安裝程序;最新版本Microsoft ActiveSync 3.8出來了,可以到摘要的頁面中去找鏈接下載,但這個程序我還是用的老版本。

  作用:同步手機和PC機數據的程序

  2、Microsoft SMARTPHONE 2003 SDK.msi

  下載網址:

  http://download.microsoft.com/download/e/3/1/e310bb99-2f33-4d79-bb8a-41d9cb3c79b4/Microsoft SMARTPHONE 2003 SDK.msi

  3、MobileAppDevToolkit2004.exe

  下載地址:http://download.microsoft.com/download/b/2/5/b25742c0-daa3-4a8c-988d-a947a35e0a68/MobileAppDevToolkit2004.exe

  二、設計并部署WebService

  1、建立一個名為WeatherService的WebService,并將QQ的天氣服務轉為xml WebService服務,部署在一臺具有固定ip的服務器上。

  2、新建一個WeatherDataSet.XSD,存儲我們的天氣信息

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="WeatherDataSet" targetNamespace="Ezhi.Services.WeatherService" elementFormDefault="qualified"
  attributeFormDefault="qualified" xmlns="Ezhi.Services.WeatherService"    xmlns:mstns="Ezhi.Services.WeatherService"
  xmlns:xs="

<xs:element name="WeatherDataSet" msdata:IsDataSet="true">
<xs:complexType>
?。紉s:choice maxOccurs="unbounded">
 ?。紉s:element name="WeatherDS">
   <xs:complexType>
   ?。紉s:sequence>
    ?。紉s:element name="CityName" type="xs:string" minOccurs="0" />
     <xs:element name="Date1" type="xs:string" minOccurs="0" />
    ?。紉s:element name="Weather1" type="xs:string" minOccurs="0" />
     <xs:element name="Temp1" type="xs:string" minOccurs="0" />
    ?。紉s:element name="WindPower1" type="xs:string" minOccurs="0" />
    ?。紉s:element name="Date2" type="xs:string" minOccurs="0" />
     <xs:element name="Weather2" type="xs:string" minOccurs="0" />
    ?。紉s:element name="Temp2" type="xs:string" minOccurs="0" />
    ?。紉s:element name="WindPower2" type="xs:string" minOccurs="0" />
    </xs:sequence>
  ?。?xs:complexType>
  </xs:element>
?。?xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

  3、WeatherService的源代碼如下

#region Using directives

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.IO;
using System.Net;
using System.Text;

#endregion

namespace WeatherService
{
 /// <summary>
 /// Service1 的摘要說明。
 /// </summary>

 [WebService(Description="WeatherService 天氣Service",Namespace="WeatherService")]

 public class Weather : System.Web.Services.WebService
 {
  #region Variable
  
PRivate string tommorow;
  #endregion

  #region 構造函數

public Weather()
{
 InitializeComponent();

 if(DateTime.Today.AddDays(1).Month.ToString().Length == 1)
 {
  tommorow= "0"+DateTime.Today.AddDays(1).Month.ToString()+"月" +
      DateTime.Today.AddDays(1).Day.ToString()+"日";
 }
 else
 {
  tommorow= DateTime.Today.AddDays(1).Month.ToString()+"月" +
     DateTime.Today.AddDays(1).Day.ToString()+"日";
 }
}

#endregion

  #region 組件設計器生成的代碼

//Web 服務設計器所必需的

private IContainer components = null;

/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>

private void InitializeComponent()
{}

/// <summary>
/// 清理所有正在使用的資源。
/// </summary>

protected override void Dispose( bool disposing )
{
 if(disposing && components != null)
 {
  components.Dispose();
 }
 base.Dispose(disposing);
}

#endregion

#region [OK] GetWeatherDataSet 天氣預報

[WebMethod(Description="天氣預報")]

public DataSet GetWeatherDataSet(string cityName)
{
 string url=@"http://appnews.qq.com/cgi-bin/news_qq_search";
 string weatherData="";

 try
 {
  weatherData = GetPage(url,cityName).Replace(" ","").Trim();
 }
 catch(Exception)
 {
  throw new Exception("對不起,沒有這個城市的天氣信息!");
 }

 //System.Diagnostics.Trace.WriteLine( tommorow );
 //System.Diagnostics.Trace.WriteLine( weatherData );

 WeatherDataSet weatherDs = new WeatherDataSet();
 weatherDs.WeatherDS.AddWeatherDSRow(GetWeatherRow(ref weatherDs,weatherData,cityName) );
 return weatherDs;
}

private WeatherDataSet.WeatherDSRow GetWeatherRow(ref WeatherDataSet weatherDs,string weatherData,string cityName)
{
 WeatherDataSet.WeatherDSRow weatherRow = weatherDs.WeatherDS.NewWeatherDSRow();
 weatherRow.CityName = weatherData.Substring(weatherData.IndexOf("●")+1,cityName.Length);

 weatherRow.Date1 = DateTime.Now.ToLongDateString();

 weatherRow.Weather1 = weatherData.Substring(weatherData.IndexOf("天氣")+"天氣".Length,weatherData.IndexOf("氣溫")-(weatherData.IndexOf("天氣")+"天氣".Length));

 weatherRow.Temp1 = weatherData.Substring(weatherData.IndexOf("氣溫")+"氣溫".Length,weatherData.IndexOf("風力")-(weatherData.IndexOf("氣溫")+"氣溫".Length)).Replace("℃-","℃/");

 weatherRow.WindPower1 = weatherData.Substring(weatherData.IndexOf("風力")+"風力".Length,weatherData.IndexOf(tommorow)-(weatherData.IndexOf("風力")+"風力".Length));

 weatherRow.Date2 = DateTime.Today.AddDays(1).ToLongDateString();

 weatherRow.Weather2 = weatherData.Substring(weatherData.LastIndexOf("天氣")+"天氣".Length,weatherData.LastIndexOf("氣溫")-(weatherData.LastIndexOf("天氣")+"天氣".Length));

 weatherRow.Temp2 = weatherData.Substring(weatherData.LastIndexOf("氣溫")+"氣溫".Length,weatherData.LastIndexOf("風力")-(weatherData.LastIndexOf("氣溫")+"氣溫".Length)).Replace("℃-","℃/");

 weatherRow.WindPower2 = weatherData.Substring(weatherData.LastIndexOf("風力")+"風力".Length);

 return weatherRow;
}

#endregion

#region GetPageString 獲取QQ的天氣服務

//private string xx="";

[WebMethod(Description="天氣預報")]

public string GetPageString(string cityName)
{
 string url=@"http://appnews.qq.com/cgi-bin/news_qq_search";
 return GetPage(url,cityName);
}

private static string GetPage(string url,string cityName)
{
 HttpWebResponse res = null;
 string strResult = "";
 try
 {
  string postData = "city=" + HttpUtility.UrlEncode(cityName,System.Text.Encoding.GetEncoding("GB2312"));
  HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  req.Method = "POST";
  req.KeepAlive = true;
  req.ContentType = "application/x-www-form-urlencoded";
  StringBuilder UrlEncoded = new StringBuilder();
  byte[] SomeBytes = Encoding.ASCII.GetBytes(postData);
  req.ContentLength = SomeBytes.Length;
  Stream newStream = req.GetRequestStream();
  newStream.Write(SomeBytes, 0, SomeBytes.Length);
  newStream.Close();

  //獲得流內容

  res = (HttpWebResponse)req.GetResponse();
  System.IO.Stream s=res.GetResponseStream();
  StreamReader reader = new StreamReader(s,System.Text.Encoding.Default);
  strResult=reader.ReadToEnd();
 }
 catch(Exception e)
 {
  strResult = e.ToString();
 }
 finally
 {
  if ( res != null )
  {
   res.Close();
  }
 }

 strResult=strResult.Remove(0,strResult.IndexOf("●"));

 if( cityName != "北京" )
 {
  strResult=strResult.Remove(strResult.IndexOf("北京"),strResult.Length-strResult.IndexOf("北京"));
 }
 else
 {
  strResult=strResult.Remove(strResult.LastIndexOf("北京"),strResult.Length-strResult.LastIndexOf("北京"));
 }

 strResult=strResult.Trim();
 while(strResult.IndexOf(@"<") != -1)
 {
  strResult=strResult.Remove(strResult.IndexOf(@"<"),strResult.IndexOf(@">")-strResult.IndexOf(@"<")+1);
 }

 while(strResult.IndexOf(@" ") != -1)
 {
  strResult=strResult.Replace(" ","");
 }

 string x = Encoding.UTF8.GetString(new Byte[]{10});
 string y = Encoding.UTF8.GetString(new Byte[]{9});

 while(strResult.IndexOf(x) != -1)
 {
  strResult=strResult.Replace(x,"");
 }

 while(strResult.IndexOf(y) != -1)
 {
  strResult=strResult.Replace(y,"");
 }
 return strResult;
}

#endregion
}
}

  記得將在Web.Config文件加入以下節點,使得WebService能被外部訪問

<!-- WebService 獲取的途徑 -->
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="HttpPostLocalhost"/?
<add name="Documentation"/>
</protocols>
</webServices>
  三、新建手機應用程序項目

  1、新建一個智能設備應用程序,在主面板上拖放如圖2所示的幾個控件,其中timer是用來檢查是否數據已經下載完畢的。


圖1-新建智能設備應用程序


圖2-界面設計


  2、引用建好的WebService


圖3-引用WebService

  3、WeatherService智能手機上運行的程序源代碼

using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;

namespace WeatherService
{
 /// <summary>
 /// Summary description for MainForm.
 /// </summary>

 public class MainForm : System.Windows.Forms.Form
 {
  private System.Windows.Forms.ComboBox comboBox_City;
  private System.Windows.Forms.MenuItem menuItem1;
  private System.Windows.Forms.Label txt_Weather1;
  private System.Windows.Forms.Label txt_Date1;
  private System.Windows.Forms.Label txt_Temp1;
  private System.Windows.Forms.Label txt_WindPower1;
  private System.Windows.Forms.Label txt_Temp2;
  private System.Windows.Forms.Label txt_WindPower2;
  private System.Windows.Forms.Label txt_Date2;
  private System.Windows.Forms.Label txt_Weather2;
  private System.Windows.Forms.MainMenu mainMenu1;
  private System.Windows.Forms.MenuItem menuItem_Menu;
  private System.Windows.Forms.MenuItem menuItem_Exit;
  private System.Windows.Forms.Label label_City;
  private System.Windows.Forms.Timer timer1;
  private System.Windows.Forms.MenuItem menuItem2;
  private System.Windows.Forms.MenuItem menuItem3;

  public string[] cityList = new string[]
  {
   "北京",
   "上海",
   "天津",
   "石家莊",
   "哈爾濱",
   "沈陽",
   "長春",
   "太原",
   "濟南",
   "鄭州",
   "天津",
   "呼和浩特",
   "西安",
   "銀川",
   "蘭州",
   "西寧",
   "烏魯木齊",
   "合肥",
   "南昌",
   "南京",
   "杭州",
   "武漢",
   "長沙",
   "廣州",
   "深圳",
   "福州",
   "廈門",
   "南寧",
   "桂林",
   "海口",
   "重慶",
   "成都",
   "貴陽",
   "昆明",
   "拉薩",
   "香港",
   "澳門",
   "臺北",
  };

  public MainForm()
  {
   InitializeComponent();
   foreach( string x in cityList)
   {
    this.comboBox_City.Items.Add(x);
   }

   this.comboBox_City.SelectedIndex = 0;
  }

  /// <summary>
  /// Clean up any resources being used.
  /// </summary>

  protected override void Dispose( bool disposing )
  {
   base.Dispose( disposing );
  }

  #region Windows Form Designer generated code

  /// <summary>
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// </summary>

  private void InitializeComponent()
  {
   this.mainMenu1 = new System.Windows.Forms.MainMenu();
   this.menuItem1 = new System.Windows.Forms.MenuItem();
   this.menuItem_Menu = new System.Windows.Forms.MenuItem();
   this.menuItem_Exit = new System.Windows.Forms.MenuItem();
   this.menuItem3 = new System.Windows.Forms.MenuItem();
   this.menuItem2 = new System.Windows.Forms.MenuItem();
   this.comboBox_City = new System.Windows.Forms.ComboBox();
   this.label_City = new System.Windows.Forms.Label();
   this.txt_Weather1 = new System.Windows.Forms.Label();
   this.txt_Date1 = new System.Windows.Forms.Label();
   this.txt_Temp1 = new System.Windows.Forms.Label();
   this.txt_WindPower1 = new System.Windows.Forms.Label();
   this.txt_Temp2 = new System.Windows.Forms.Label();
   this.txt_WindPower2 = new System.Windows.Forms.Label();
   this.txt_Date2 = new System.Windows.Forms.Label();
   this.txt_Weather2 = new System.Windows.Forms.Label();
   this.timer1 = new System.Windows.Forms.Timer();

   //
   // mainMenu1
   //

   this.mainMenu1.MenuItems.Add(this.menuItem1);
   this.mainMenu1.MenuItems.Add(this.menuItem_Menu);
   //
   // menuItem1
   //

   this.menuItem1.Text = "確定";
   this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);

   //
   // menuItem_Menu
   //

   this.menuItem_Menu.MenuItems.Add(this.menuItem_Exit);
   this.menuItem_Menu.MenuItems.Add(this.menuItem3);
   this.menuItem_Menu.MenuItems.Add(this.menuItem2);
   this.menuItem_Menu.Text = "菜單";

   //
   // menuItem_Exit
   //

   this.menuItem_Exit.Text = "退出";
   this.menuItem_Exit.Click += new System.EventHandler(this.menuItem_Exit_Click);

   //
   // menuItem3
   //

   this.menuItem3.Text = "-";

   //
   // menuItem2
   //

   this.menuItem2.Text = "關于";
   this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);

   //
   // comboBox_City
   //

   this.comboBox_City.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.comboBox_City.Location = new System.Drawing.Point(52, 8);
   this.comboBox_City.Size = new System.Drawing.Size(114, 22);

   //
   // label_City
   //

   this.label_City.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Bold);
   this.label_City.Location = new System.Drawing.Point(4, 12);
   this.label_City.Size = new System.Drawing.Size(52, 16);
   this.label_City.Text = "城市:";
   this.label_City.TextAlign = System.Drawing.ContentAlignment.TopCenter;

   //
   // txt_Weather1
   //

   this.txt_Weather1.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_Weather1.Location = new System.Drawing.Point(12, 50);
   this.txt_Weather1.Size = new System.Drawing.Size(152, 14);
   this.txt_Weather1.Text = "天氣:";

   //
   // txt_Date1
   //

   this.txt_Date1.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_Date1.Location = new System.Drawing.Point(12, 34);
   this.txt_Date1.Size = new System.Drawing.Size(152, 14);
   this.txt_Date1.Text = "日期:";

   //
   // txt_Temp1
   //

   this.txt_Temp1.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_Temp1.Location = new System.Drawing.Point(12, 68);
   this.txt_Temp1.Size = new System.Drawing.Size(152, 14);
   this.txt_Temp1.Text = "氣溫:";

   //
   // txt_WindPower1
   //

   this.txt_WindPower1.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_WindPower1.Location = new System.Drawing.Point(12, 84);
   this.txt_WindPower1.Size = new System.Drawing.Size(152, 14);
   this.txt_WindPower1.Text = "風力:";

   //
   // txt_Temp2
   //

   this.txt_Temp2.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_Temp2.Location = new System.Drawing.Point(12, 140);
   this.txt_Temp2.Size = new System.Drawing.Size(152, 14);
   this.txt_Temp2.Text = "氣溫:";

   //
   // txt_WindPower2
   //

   this.txt_WindPower2.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_WindPower2.Location = new System.Drawing.Point(12, 156);
   this.txt_WindPower2.Size = new System.Drawing.Size(152, 14);
   this.txt_WindPower2.Text = "風力:";

   //
   // txt_Date2
   //

   this.txt_Date2.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_Date2.Location = new System.Drawing.Point(12, 108);
   this.txt_Date2.Size = new System.Drawing.Size(152, 14);
   this.txt_Date2.Text = "日期:";

   //
   // txt_Weather2
   //

   this.txt_Weather2.Font = new System.Drawing.Font("Nina", 9F, System.Drawing.FontStyle.Regular);
   this.txt_Weather2.Location = new System.Drawing.Point(12, 124);
   this.txt_Weather2.Size = new System.Drawing.Size(152, 14);
   this.txt_Weather2.Text = "天氣:";

   //
   // timer1
   //

   this.timer1.Interval = 200;
   this.timer1.Tick += new System.EventHandler(this.timer1_Tick);

   //
   // MainForm
   //

   this.Controls.Add(this.comboBox_City);
   this.Controls.Add(this.txt_Date1);
   this.Controls.Add(this.txt_Weather1);
   this.Controls.Add(this.label_City);
   this.Controls.Add(this.txt_Temp1);
   this.Controls.Add(this.txt_WindPower1);
   this.Controls.Add(this.txt_Temp2);
   this.Controls.Add(this.txt_WindPower2);
   this.Controls.Add(this.txt_Date2);
   this.Controls.Add(this.txt_Weather2);
   this.Menu = this.mainMenu1;
   this.Text = "天氣預報";
  }

  #endregion

  /// <summary>
  /// The main entry point for the application.
  /// </summary>

  static void Main()
  {
   Application.Run(new MainForm());
  }

  private void menuItem_Exit_Click(object sender, System.EventArgs e)
  {
   this.Dispose();
  }

  private void menuItem1_Click(object sender, System.EventArgs e)
  {
   SearchWeather(this.comboBox_City.Text);
  }

  private string[] myString = new string[]
  {
    "日期: ",
    "溫度: ",
    "天氣: ",
    "風力: ",
  };

  public void SearchWeather(string cityName)
  {
   if( this.txt_Date1.Text != myString[0] )
   {
    ReSelect();
   }

   this.Text = "正在下載...";
   this.timer1.Enabled = true;

   WeatherService.Weather weather = new WeatherService.Weather();
   DataSet myDs = weather.GetWeatherDataSet(cityName);

   this.txt_Date1.Text = myString[0] + myDs.Tables[0].Rows[0]["Date1"].ToString();
   this.txt_Temp1.Text = myString[1] + myDs.Tables[0].Rows[0]["Temp1"].ToString();
   this.txt_Weather1.Text = myString[2] + myDs.Tables[0].Rows[0]["Weather1"].ToString();
   this.txt_WindPower1.Text = myString[3] + myDs.Tables[0].Rows[0]["WindPower1"].ToString();

   this.txt_Date2.Text = myString[0] + myDs.Tables[0].Rows[0]["Date2"].ToString();
   this.txt_Temp2.Text = myString[1] + myDs.Tables[0].Rows[0]["Temp2"].ToString();
   this.txt_Weather2.Text = myString[2] + myDs.Tables[0].Rows[0]["Weather2"].ToString();
   this.txt_WindPower2.Text = myString[3] + myDs.Tables[0].Rows[0]["WindPower2"].ToString();
  }

  private void ReSelect()
  {
   this.txt_Date1.Text = myString[0];
   this.txt_Temp1.Text = myString[1];
   this.txt_Weather1.Text = myString[2];
   this.txt_WindPower1.Text = myString[3];
   this.txt_Date2.Text = myString[0];
   this.txt_Temp2.Text = myString[1];
   this.txt_Weather2.Text = myString[2];
   this.txt_WindPower2.Text = myString[3];
  }

  private void timer1_Tick(object sender, System.EventArgs e)
  {
   if( this.txt_Date1.Text.IndexOf("月") != -1)
   {
    this.timer1.Enabled = false;
    this.Text = "天氣預報";
   }
  }

  private void menuItem2_Click(object sender, System.EventArgs e)
  {
   this.Text = "作者:賀星河";
   System.Threading.Thread.Sleep(3000);
   this.Text = "天氣預報";
  }
 }
}

  四、在多普達565手機上部署并運行

  1、在VS.NET2003的“解決方案WeatherService”上點擊右鍵,選擇”部署解決方案”,出現一下對話框


圖4-部署解決方案

  選擇“部署”,“部署”完成后,手機上將顯示如下界面


圖5、手機界面之一-部署

  因為我的PC機器上安裝了.NET Framework1.1SP1,所以會提示這個界面,選擇“確定”,繼續執行安裝部署:


圖6、手機界面之二-選擇安裝位置

  選擇安裝位置為”Sotrage Card”,選擇“完成”,這個時候程序就部署完畢了,

  使用Resco Explore 2003,找到安裝部署后程序所在的目錄,在 /Sorage/Program Files/WeatherService/ 目錄下面,執行程序WeatherService.exe,將出現如下畫面:


圖7、手機界面之三-開始執行程序 選擇“是”。

  之所以出現這個畫面,是因為程序沒有經過系統的認證,也是微軟安全方面的一個體現,即時這個程序會正常執行,也不會冒然打出電話!

  程序執行之后,會出現如下畫面,選擇需要查詢的城市名稱,點“確定”


圖8、手機界面之四-程序界面

  之后程序標題會變為“正在下載…”,程序通過GPRS上網讀取部署在Internet上的WebService


圖9、手機界面之五-運行界面

  稍等幾秒鐘之后,便會看到所需要的天氣信息數據


圖10、手機界面之六-運行結果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线视频日韩欧美在线视频| 日韩精品久久久久久久玫瑰园| 亚洲最新av在线| 最好看的2019年中文视频| 亚洲亚裔videos黑人hd| 欧美午夜xxx| 亚洲成人精品久久久| 亚洲欧美日韩中文在线制服| 欧美午夜片欧美片在线观看| 亚洲乱亚洲乱妇无码| 久久久av免费| 黑人与娇小精品av专区| 在线播放亚洲激情| 色yeye香蕉凹凸一区二区av| 欧美极品少妇xxxxⅹ免费视频| 国产丝袜一区二区| 亚洲欧美日韩国产中文| 777午夜精品福利在线观看| 深夜福利日韩在线看| 欧美日韩在线视频一区| 午夜欧美大片免费观看| 欧美激情亚洲另类| 亚洲精品资源美女情侣酒店| 欧美成aaa人片在线观看蜜臀| 国产欧美精品在线播放| 日韩在线免费观看视频| 成人免费大片黄在线播放| 亚洲va久久久噜噜噜久久天堂| 欧美乱大交xxxxx| 亚洲九九九在线观看| 欧美日韩性视频在线| 久久久久久尹人网香蕉| 精品香蕉一区二区三区| 中文字幕少妇一区二区三区| 国产精彩精品视频| 亚洲天堂av电影| 国产福利视频一区二区| 久久久久久一区二区三区| 色婷婷av一区二区三区在线观看| 韩剧1988在线观看免费完整版| 不卡av电影院| 久久免费精品日本久久中文字幕| 久久精品视频在线| 亚洲色图13p| 欧美成人精品在线视频| 久久天天躁日日躁| 国产欧美日韩精品专区| 蜜臀久久99精品久久久久久宅男| 欧美中文字幕视频| 国产精品成av人在线视午夜片| 性欧美激情精品| 欧美成人精品不卡视频在线观看| …久久精品99久久香蕉国产| 97超级碰在线看视频免费在线看| 日韩av免费一区| 欧洲美女免费图片一区| 久久天天躁狠狠躁夜夜躁2014| 96sao精品视频在线观看| 色视频www在线播放国产成人| 亚洲美女激情视频| 国色天香2019中文字幕在线观看| 日韩大胆人体377p| 国模私拍一区二区三区| 欧美一二三视频| 国产美女精品视频| 国产精品女主播视频| 福利一区福利二区微拍刺激| 4438全国亚洲精品在线观看视频| 久久亚洲精品成人| 在线日韩日本国产亚洲| 国产成人综合精品在线| 在线电影av不卡网址| 亚洲第一av在线| 免费91麻豆精品国产自产在线观看| 精品亚洲aⅴ在线观看| 国产成人综合一区二区三区| 日韩久久免费电影| 欧美精品免费在线观看| 亚洲国产精品电影在线观看| 国产欧美日韩视频| 欧美一区二区三区免费视| 成人黄色短视频在线观看| 日韩欧美成人精品| 日本精品久久久久久久| 亚洲精品久久久久久久久久久久久| 亚洲欧美制服中文字幕| 欧美激情国内偷拍| 国产精品久久久久久久久免费看| 亚洲精品动漫100p| 亚洲国产毛片完整版| 久久久日本电影| 久久精品中文字幕电影| 亚洲第一中文字幕在线观看| 国产精品va在线播放我和闺蜜| 日韩电影在线观看免费| 亚洲一区二区中文| 日韩av网址在线观看| 日韩欧美在线观看视频| 日韩亚洲欧美中文高清在线| 亚洲国产精品视频在线观看| 热久久美女精品天天吊色| 欧美亚洲在线视频| 亚洲国产成人精品久久久国产成人一区| 精品视频在线播放免| 色偷偷噜噜噜亚洲男人| 国产精品91久久久| 亚洲女人被黑人巨大进入al| 欧美最顶级丰满的aⅴ艳星| 国产精品在线看| 中文字幕国内精品| 欧美激情免费看| 中文字幕自拍vr一区二区三区| 日韩在线欧美在线| 国产女人18毛片水18精品| 国产成人高潮免费观看精品| 国产精品午夜国产小视频| 欧美另类99xxxxx| 成年无码av片在线| 91精品国产91久久久| 欧美中文字幕精品| 国产成人在线亚洲欧美| 亚洲第一福利网站| 国产亚洲欧美另类中文| 久久精品99久久香蕉国产色戒| 在线播放亚洲激情| 久久久久久九九九| 亚洲电影免费观看高清| 日韩在线中文字| 91久久精品国产91久久性色| 亚洲午夜女主播在线直播| 97成人超碰免| 日韩在线欧美在线| 久久久精品999| 欧美成人精品在线| 久久久国产精彩视频美女艺术照福利| 亚洲国产一区二区三区四区| 在线观看日韩专区| 91国产精品视频在线| 国产精品v日韩精品| 亚洲第一天堂无码专区| 精品久久久久久久中文字幕| 疯狂做受xxxx欧美肥白少妇| 国产精品入口免费视频一| 欧美精品videos性欧美| 欧美床上激情在线观看| 国产日韩欧美综合| 亚洲有声小说3d| 亚洲欧美日韩国产成人| 亚洲视频在线看| 国产一区玩具在线观看| 裸体女人亚洲精品一区| 日韩在线视频中文字幕| 精品久久久久久亚洲精品| 欧美在线一级视频| 亚洲爱爱爱爱爱| 国产精品高清网站| 91在线免费视频| 亚洲美女av在线播放| 国产精品一区二区性色av| 亚洲精品美女视频| 亚洲日本中文字幕免费在线不卡| 欧美精品福利视频| 欧美日韩亚洲精品一区二区三区| 国产亚洲精品va在线观看|