登录功能代码

#region 私有字段
privatestring responseString;
privatestaticstring key;
privatestaticstring url;
privatestaticstring session;
privatestaticstring token;
privatestaticstring nick;
#endregion

///<summary>
/// 获取身份码 和识别码
///</summary>
///<returns></returns>
publicstring GetUniqueID()
{
byte[] byteArray = DeviceExtendedProperties.GetValue("DeviceUniqueId") asbyte[];
string strTemp ="";
string strDeviceUniqueID ="";
foreach (byte bt in byteArray)
{
strTemp
= bt.ToString();
if (1== strTemp.Length)
{
strTemp
="00"+ strTemp;
}
elseif (2== strTemp.Length)
{
strTemp
="0"+ strTemp;
}
strDeviceUniqueID
+= strTemp;
}
return strDeviceUniqueID;
}
///<summary>
/// 将身份码和识别码以字典集合的形式返回
///</summary>
///<param name="str"></param>
///<returns></returns>
public List<string> GetStr(string str)
{
List
<string> strList =new List<string>();
strList.Add(str.Substring(
0, 15));
strList.Add(str.Substring(
14, 15));
return strList;
}
///<summary>
/// 得到签名
///</summary>
///<param name="appkey"></param>
///<param name="appsecret"></param>
///<returns></returns>
publicstring CreateSign(string appkey, string appsecret)
{
string str = appkey + appsecret + DateTime.Now.Millisecond;
MD5Helper MD5
= MD5Helper.Create();

str
= Convert.ToBase64String(MD5.ComputeHash(Encoding.UTF8.GetBytes(str)));

return str;
}
///<summary>
/// Load事件
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
privatevoid PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{

//登陆第一步 调用第一个接口:com.taobao.wireless.mtop.getLoginUrl
List<string> strList = GetStr(GetUniqueID());
string url ="http://api.m.taobao.com/rest/api2.do?api=com.taobao.wireless.mtop.getLoginUrl";
string ttid ="&ttid=400000_12315576@wp7stk_windowsphone7_1.0.0";
string data ="&data={%22appkey%22:%2212315576%22}";
url
+="&v=windowsphone7Client";
url
+= ttid;
url
+="&imei=";
url
+= strList[0].ToString();
url
+="&imsi=";
url
+= strList[1].ToString();
url
+= data;
url
+="&sign=";
url
+= CreateSign("12315576", "5734907fbdd9af8f23493a9411ba9805");
//----------------------------------------以上为字符串的拼接,调用几个方法最终将url拼装成需要的请求的地址

//WebBrowserTask web = new WebBrowserTask();
//web.URL = url;
//web.Show();
//-------------------------------------以下为发出请求,切忌,此步单单是请求,并没有发送请求的数据流
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType
="application/x-www-form-urlencoded;charset=utf-8";
request.Method
="POST";
request.BeginGetResponse(
new AsyncCallback(GetResponseCallback), request);
}
privatevoid GetResponseCallback(IAsyncResult asynchronousResult)
{
//try
//{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response
= (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse
= response.GetResponseStream();
StreamReader streamRead
=new StreamReader(streamResponse);
responseString
= streamRead.ReadToEnd(); //以字符串形式接收json数据
//---------------------------------------------------注意此步为解析json数据,在本页底部为此定义了Text和Data两个实体类
byte[] b = Encoding.UTF8.GetBytes(responseString);
MemoryStream stream
=new MemoryStream(b);
DataContractJsonSerializer data
=new DataContractJsonSerializer(typeof(Text));
Text t
= (Text)data.ReadObject(stream);
key
= t.Data.Key;
url
= t.Data.Url;
//------------------------------------------------------------------------------------------------------------------
streamResponse.Close();
streamRead.Close();
response.Close();

Dispatcher.BeginInvoke(
()
=>
{
this.webBLoad.Navigate(new Uri(url));
MessageBox.Show(
"请在登录后授权本软件!", "温馨提示", MessageBoxButton.OK);
});
//}
//catch
//{
// MessageBox.Show("网络连接有误!");
//}
}

privatevoid GetResponseCall(IAsyncResult asynchronousResult)
{

HttpWebRequest request
= (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response
= (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse
= response.GetResponseStream();
StreamReader streamRead
=new StreamReader(streamResponse);
responseString
= streamRead.ReadToEnd();
//---------------------------------------------------------此部分也是解析json数据,在本页底部也为此定义了Test和data两个实体类
byte[] b = Encoding.UTF8.GetBytes(responseString);
MemoryStream stream
=new MemoryStream(b);
DataContractJsonSerializer data
=new DataContractJsonSerializer(typeof(Test));
Test t
= (Test)data.ReadObject(stream);
token
= t.Data.Token;
session
= t.Data.Topsession;
nick
= t.Data.Nick;
//-----------------------------------------------------------------------------------------------------
LoadBLL.GetLoad(nick, session);
streamResponse.Close();
streamRead.Close();
response.Close();

Dispatcher.BeginInvoke(
()
=>
{
if (LoadBLL.Load.Count ==0|| LoadBLL.Load[0] ==null)
{
MessageBox.Show(
"登录授权失败!");
NavigationService.GoBack();
}
else
{
NavigationService.GoBack();
}

});
}

privatevoid webBLoad_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
if (e.Uri.AbsolutePath.Equals("/mtop/bind_app_result.htm"))
{
List
<string> strList = GetStr(GetUniqueID());
string uri ="http://api.m.taobao.com/rest/api2.do?api=com.taobao.client.mtop.getUserSessionKey";
string ttid ="&ttid=400000_12315576@wp7stk_windowsphone7_1.0.0";
string data ="&data={\"key\":\""+ key +"\",\"appkey\":\"12315576\"}";
uri
+="&v=windowsphone7Client";
uri
+= ttid;
uri
+="&imei=";
uri
+= strList[0].ToString();
uri
+="&imsi=";
uri
+= strList[1].ToString();
uri
+= data;
uri
+="&sign=";
uri
+= CreateSign("12315576", "5734907fbdd9af8f23493a9411ba9805");
this.webBLoad. Navigate(new Uri(uri));
HttpWebRequest request
= (HttpWebRequest)WebRequest.Create(uri);
request.ContentType
="application/x-www-form-urlencoded;charset=utf-8";
request.Method
="POST";
request.BeginGetResponse(
new AsyncCallback(GetResponseCall), request);
}
}

privatevoid PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
PageOrientation ori
=this.Orientation;
if (ori == PageOrientation.Portrait || ori == PageOrientation.PortraitDown || ori == PageOrientation.PortraitUp || ori == PageOrientation.None)
{
this.webBLoad.Height =720;
this.webBLoad.Width=480;
}
if (ori == PageOrientation.Landscape || ori == PageOrientation.LandscapeLeft || ori == PageOrientation.LandscapeRight)
{
this.webBLoad.Width =730;
this.webBLoad.Height =430;
}
}
}

 几个在登录功能用到的类的命名空间:using System.Runtime.Serialization;

View Code
   [DataContract]
publicclass Text
{

privatestring _api;
privatestring _v;
privatestring _ret;
private Data _data;
[DataMember(Name
="api")]
publicstring Api
{
get { return _api; }
set { _api = value; }
}
[DataMember(Name
="v")]
publicstring V
{
get { return _v; }
set { _v = value; }
}
[DataMember(Name
="ret")]
publicstring Ret
{
get { return _ret; }
set { _ret = value; }
}
[DataMember(Name
="data")]
public Data Data
{
get { return _data; }
set { _data = value; }
}
}

[DataContract]
publicclass Data
{
privatestring _key;
privatestring _url;

[DataMember(Name
="key")]
publicstring Key
{
get { return _key; }
set { _key = value; }
}

[DataMember(Name
="url")]
publicstring Url
{
get { return _url; }
set { _url = value; }
}
}

[DataContract]
publicclass Test
{
privatestring _api;
privatestring _v;
privatestring _ret;
private data _data;
[DataMember(Name
="api")]
publicstring Api
{
get { return _api; }
set { _api = value; }
}
[DataMember(Name
="v")]
publicstring V
{
get { return _v; }
set { _v = value; }
}
[DataMember(Name
="ret")]
publicstring Ret
{
get { return _ret; }
set { _ret = value; }
}
[DataMember(Name
="data")]
public data Data
{
get { return _data; }
set { _data = value; }
}
}

[DataContract]
publicclass data
{

privatestring _topsession;
privatestring _sid;
privatestring _time;
privatestring _ecode;
privatestring _nick;
privatestring _token;
[DataMember(Name
="topsession")]
publicstring Topsession
{
get { return _topsession; }
set { _topsession = value; }
}
[DataMember(Name
="sid")]
publicstring Sid
{
get { return _sid; }
set { _sid = value; }
}
[DataMember(Name
="time")]
publicstring Time
{
get { return _time; }
set { _time = value; }
}
[DataMember(Name
="ecode")]
publicstring Ecode
{
get { return _ecode; }
set { _ecode = value; }
}
[DataMember(Name
="nick")]
publicstring Nick
{
get { return _nick; }
set { _nick = value; }
}
[DataMember(Name
="token")]
publicstring Token
{
get { return _token; }
set { _token = value; }
}
}

 UI:           

<phone:WebBrowser HorizontalAlignment="Left"  Name="webBLoad" VerticalAlignment="Top" Width="480" Height="720" Vavigated="webBLoad_Navigated" />

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL MTOP数据管理最新官方版,MySQL MTOP是一个由Python+PHP开发的开源MySQL企业监控系统。系统由Python实现多进程数据采集和告警,PHP实现WEB展示和管理。MySQL服务器无需安装任何Agent,只需在监控WEB界面配置相关数据库信息,启动监控进程后,即可对上百台MySQL数据库的状态、连接数、QTS、TPS、数据库流量、复制、性能慢查询等进行时时监控。并能在数据库偏离设定的正常运行阀值(如连接异常,复制异常,复制延迟) 时发送告警邮件通知到DBA进行处理。并对历史数据归档,通过图表展示出数据库近期状态,以便DBA和开发人员能对遇到的问题进行分析和诊断。 MySQL MTOP 2.0 更新主要内容如下: 1.新增进程监控管理,可以通过WEB界面结束进程。 2.新增慢查询分析和统计工具。 3.系统资源监控优化,采用snmp方式代替ssh方式采集数据。 4.画图展示优化,采用jqplot。 5.界面UI优化,新加入flat-ui样式。 6.增加工具组件栏目:包括数据库大表检查,命中率查询,连接源统计等功能。 7.增加多用户管理。只有管理员可以进行管理的相关操作。 8.修复了1.0的一些bug。 MySQL MTOP主要功能特性如下: 1.实时 MySQL 可用性监视 数据库可用性监视和衡量让开发者和DBA们了解它们是否符合所承诺的服务水平。 2.实时 MySQL 状态监视和警报 MySQL MTOP 持续监视 MySQL 的基本状态和性能信息,包括数据库连接状态,启动时间,数据库版本,总连接数,活动进程,QPS,TPS, 进出MySQL数据库的流量信息。在数据库状态异常或偏离正常基准水平时发出报警邮件通知。 3.实时 MySQL复制监视 MySQL MTOP自动发现您的 MySQL 复制拓扑结构,自动监视数据库的延时和binlog信息,让您可以了解所有 MySQL 主服务器和从服务器的性能、可用性和运行状况。并在问题(如从服务器延迟)导致停机前向管理员提供改正建议。 4.远程监视云中的 MySQL 适合于云和虚拟机的设计,使您能远程监视您的MySQL服务器不需要任何远程代理器。 5.直观管理所有 MySQL 服务器 MySQL MTOP提供一个基于 Web 的界面,可令您全面深入地了解数据库性能、可用性、关键活动等;直观地查看一台服务器、自定义的应用组或所有服务器。一组丰富的实时图形和历史图形将帮助您深入了解详细的服务器统计信息。 6.可视化MySQL慢查询分析 监视实时查询性能,查看执行统计信息,筛选和定位导致性能下降的 SQL 代码。结合使用 Information Schema 可直接从 MySQL 服务器收集数据,无需额外的软件或配置。 7.性能监视 监视影响 MySQL 性能的主要指标。如查询缓存命中率, Key_buffer_read_hits,Key_buffer_write_hits, Thread_cache_hits,Key_blocks_used_rate,Created_tmp_disk_tables_rate 等信息,根据相关性能指标可以对服务器核心参数进行调整优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值