微信Accesstoken通过xml文件方式保存
//获取accessToken
public static AccessToken GetAccessToken()
{
string AppID = JobBase.GetConfParamValue(ParamEnum.AppID);
string AppSecret = JobBase.GetConfParamValue(ParamEnum.AppSecret);
string accessTokenUrl = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", AppID, AppSecret);//
string accessTokenJson = RequestHelper.SendGet(accessTokenUrl);
JObject json = JObject.Parse(accessTokenJson);
AccessToken Token = new AccessToken();
Token.Access_token = json["access_token"].ToString().Replace("\"", string.Empty).Trim();
Token.Expires_in = json["expires_in"].ToString();//DateTime.Now.AddSeconds(Convert.ToInt32(json["expires_in"])).ToString();
return Token;
} public static string GetExistAccessToken()
{
// 读取XML文件中的数据
//string filePath = System.Web.HttpContext.Current.Server.MapPath("XML/Token.xml");
//string filePath = "http://。。。/QYXML/Token.xml";
string filePath = JobBase.GetConfApiValue(IplatformEnum.TokenXML);
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
XmlDocument xml = new XmlDocument();
//xml.Load(filePath);
xml.Load(fs);
fs.Close();
string Token = xml.SelectSingleNode("xml").SelectSingleNode("AccessToken").InnerText.ToString().Trim();
DateTime AccessExpires = Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("AccessExpires").InnerText);
if (DateTime.Now >= AccessExpires)
{
FileStream fstream = new FileStream(filePath, FileMode.Create, FileAccess.Write);
AccessToken mode = GetAccessToken();
xml.SelectSingleNode("xml").SelectSingleNode("AccessToken").InnerText = mode.Access_token;
DateTime _accessExpires = DateTime.Now.AddSeconds(int.Parse(mode.Expires_in) - );//1h45min
xml.SelectSingleNode("xml").SelectSingleNode("AccessExpires").InnerText = _accessExpires.ToString();
//xml.Save(filePath);
xml.Save(fstream);//此处文件保存容易报错,xml文件每次重写全覆盖不完全
fstream.Close();
Token = mode.Access_token;
}
return Token;
} public static void UpdateXML(AccessToken mode)
{
string filePath = JobBase.GetConfApiValue(IplatformEnum.TokenXML);
StreamReader sr = new StreamReader(filePath, System.Text.Encoding.UTF8);
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(sr);
sr.Close();
sr.Dispose();
xmldoc.SelectSingleNode("xml").SelectSingleNode("AccessToken").InnerText = mode.Access_token;
DateTime _accessExpires = DateTime.Now.AddSeconds(int.Parse(mode.Expires_in) - );
xmldoc.SelectSingleNode("xml").SelectSingleNode("AccessExpires").InnerText = _accessExpires.ToString();
xmldoc.Save(filePath);
}
微信Accesstoken通过xml文件方式保存的更多相关文章
- 【转】以XML文件方式保存用户数据——2013-08-25 22
正在做项目中有很多游戏数据要保存,常见的玩家数据这些比较简单的可以用CCUserDefault.它是cocos2d-x用来存取基本数据类型用的.保存为XML文件格式. 主要方法:(和java的map很 ...
- C#创建XML文件并保存
随着XML的普及以及在动态WEB应用程序中大量应用,如何通过.NET创建,删除,修改XML文件变的也来也重要了.一个简单的概念是,XML文件跟大的文本文件并没有什么区别,同时它是先于.NET出现,很多 ...
- 使用DOM解析XML文件,、读取xml文件、保存xml、增加节点、修改节点属性、删除节点
使用的xml文件 <?xml version="1.0" encoding="GB2312" ?> <PhoneInfo> <Br ...
- cocos2dx中调用TinyXml读取xml配置文件 || cocos2d-x 中跨平台tinyxml读取xml文件方式
TiXmlDocument *doc = newTiXmlDocument; #if (CC_TARGET_PLATFORM ==CC_PLATFORM_ANDROID) //Android平台tin ...
- Winform中对xml文件进行保存时空白节点自动换行问题的解决
场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10053213 ...
- PLSQL_PLSQL读和写XML文件方式(案例)
2012-05-01 Created By BaoXinjian
- js 对XML文件的保存与读取
一.保存(在前端用js创建xml格式) function exportToXml(jsonStr){ var obj = eval('('+ jsonStr + ')'); var xmlDoc = ...
- 采用xml的方式保存数据
package com.example.myxmlmake; import java.io.File; import java.io.FileOutputStream; import java.uti ...
- XML文件数据操作
#region XML序列化文件和反序列化 /// <summary> /// 通用类的保存函数,可以将已经声明过可序列化的类以文件方式保存起来. /// 保存格式分为 XML明文式和 二 ...
随机推荐
- WebDataTree 使用XML做数据源绑定数据
英文版原文链接:http://www.infragistics.com/help/topic/e5f07b51-ee2d-4a33-aaac-2f43cffff327 所使用的控件版本为:Infrag ...
- 5月21日 CSS样式表加阴影
HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- Objective-C:@property参数详解
格式:@property(param1, param2) 类型 属性名 参数可有可无 三类参数: 1.读写属性:readwrite/readonly readwrite:产生setter\getter ...
- Generic泛型
1.问题 未使用泛型时,元素的类型不安全:操作麻烦,可能需要强制转换import java.util.ArrayList;import java.util.List;import org.junit. ...
- H-The Cow Lineup(POJ 1989)
The Cow Lineup Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5367 Accepted: 3196 De ...
- J2EE面试题
J2EE面试题 J2EE相关基础知识 1.面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只 ...
- 53个要点提高PHP编程效率
1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row[’id’] 的速度是$row[id]的7倍.3.echo 比 print 快,并且使用echo ...
- java面向对象编程——第四章 类和对象
OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...
- SAP iDoc 概念及管理
创建IDOC: 第一步:WE31 创建IDOC所包含的字段. 第二步:WE30 创建IDOC 把Segment分配给IDOC 第三步:WE81 创建信息类型 第四步:WE82 把 ...
- Problem A 栈
Description You are given a string consisting of parentheses () and []. A string of this type is s ...