- 既然需要用到Appkey和Appsecret,就不得不提起设置配置文件和读取了。Net core项目生成时便带有Appsettinig.json,而使用它的方法在之前的博客也有提起->点击跳转
还有另一种方法就没那么好用了,但这种需要用不同形式的配置名字
IConfiguration config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile($"{ AppDomain.CurrentDomain.BaseDirectory }appsettings.json", true, true).AddJsonFile("appsettings.json", true, true).Build();
var appkey = config.GetSection("Appkey").Value;
- 由于用到了Access Token,不会有人想每次都要重新调用接口获取Token。那这里就需要一种方法存放了,通常可以存放于文件中和缓存中,这里比较推荐后者
public class AccessToken
{
public string token{get;set;}
public DateTime validTime{get;set;}
}
private AccessToken accessToken = null;
public string GetAccessToken(){
if(accessToken == null||accessToken.validTime<DateTime.Now){
//获取新token,并赋值
}
return accessToken.token;
}
- 多次调用接口必定会导致调用时间过长,这里可以使用多线程提升,但对运行机器有一定的配置要求
List<Task> taskList = new List<Task>()
taskList.Add(Task.Factory.StartNew(() =>
{
//运行操作
}
Task.WaitAll(task2List.ToArray());//这里是等待所有流程都结束再继续往下走
但注意,并不推荐线程套线程。同时,线程中需要使用可以确保线程安全的数组
using System.Collections.Concurrent;
ConcurrentQueue<string> strQueue = new ConcurrentQueue<string>();
//还有ConcurrentBag,ConcurrentDictionary,ConcurrentStack之类的