微信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明文式和 二 ...
随机推荐
- C语言中static变量详解
Static翻译出来是“静态”“静止”的意思,在C语言中的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数.经static修饰过后的变量或者函数的作用域或者存储域会发生变化 ...
- Collaborative Filtering
for i=1:6040 Ai=ratings(ratings(:,1)==i,:); for j=1:5 Labnum(i,j)=length(Ai(Ai(:,3)==j)); end num(i) ...
- HTML 基础知识——8月8日
一.基础知识: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- 5月18日 HTML 个人简历
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- easyui datagrid 学习
一.清空datagrid所有数据 //得到所有数据行 var item = $('#ylProductListDataGrid').datagrid('getRows'); if (item) { / ...
- Window["aaa"]这个在JS里是什么意思?
答案:定义一个全局的变量 aaa,这个的方式是数组,实际上是等于 window.aaa
- PHP5生成条形码器
前阵子在做一个商家优惠券的功能,需要用到条形码,于是将资料重新整理下. 1.什么是条形码? 百度百科定义:条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息 ...
- IoTimerInLineHook
#ifndef CXX_IOTIMERINLINEHOOK_H # include "IoTimerInlineHook.h" #endif ULONG32 SSDT_NtOpen ...
- 编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码
转自:编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码 JDK:java version “1.8.0_31”Java(TM) SE Runtime Environment ( ...
- java获取页面编码
文章出自:http://babyjoycry.javaeye.com/blog/587527 在此感谢原作者...\(^o^)/~ 最近研究抓取网页内容,发现要获取页面的编码格式,Java没有现成 ...