admin管理员组

文章数量:1619183

文章目录

  • 一、概述
    • 关键因素
    • 难点
  • 二、开始请求
    • 端口与token的获取
      • 手动获取
      • 代码获取
      • 处理token
    • https处理
  • 三、一些相关的api

这是一篇关于LOL官方api的调用起步教程,语言为C#为主,以及python的部分代码示例,此篇会说明调用成功的必要点,以及难点部分。

一、概述

手动启动客户端,wegame启动也可。启动后,api的调用环境就达到要求了。

关键因素

大部分的API的的请求头(head)内容是一样的,解决head所需参数url的端口 是关键点。
1)head结构如下:

{
   
	"Accept":"application/json"
	"Content-Type":"application/json"
	"Authorization":"Basic xxxxxxxxxxx"
}

2)关于url
整体结构:固定前缀+“:”+端口+“/”+具体请求api。例如:https://127.0.0.1:54379/data-store/v1/install-dir

  • 固定前缀:https://127.0.0.1
  • 端口:xxx
  • 具体请求api:不同的api此处不同,例如:data-store/v1/install-dir是用来获取客户端运行程序的安装地址的

3)总结:

  • 关键需要的数据是token和port端口
  • 客户端每次启动都会刷新这两个值

难点

1)https请求
需要对认证进行处理
2)获取端口和token时,需要获取管理员权限

二、开始请求

端口与token的获取

手动获取

必须以管理员权限打开CMD命令窗,输入以下内容获取基本数据

wmic PROCESS WHERE name='LeagueClientUx.exe' GET commandline

获取内容如下:


提取关键点:

//端口
--app-port=xxxx
//token
--remoting-auth-token=xxxxx

代码获取

此时就涉及到如何获取管理员权限了,无需密码的方式,使某些代码在管理员权限下进行运行。此处表现出来的就是CMD命令的管理员权限需求。

//此处贴核心代码块,有些自己习惯写法不写在此处
public const string API_FILENAME = "api_file.txt";
public const string COMMAND = "wmic PROCESS WHERE name='LeagueClientUx.exe' GET commandline";
....
public bool IsAdministrator()
{
   
    WindowsIdentity identity = WindowsIdentity.GetCurrent();
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
}
...
if (IsAdministrator())
 {
   
     var result = CMD(COMMAND);
     Console.WriteLine(result);
     //写入文件持久化,开启管理方式有异步操作
     using (StreamWriter sw = File.CreateText(API_FILENAME))
     {
   

本文标签: 英雄官方联盟lolAPI