CompetitionAPI_dotnet/Test/Program.cs

222 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using RuralPower;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
internal class Program
{
//public static string GenerateRandomKey(int keyLength)
//{
// byte[] keyBytes = new byte[keyLength / 8];
// using (var rng = new RNGCryptoServiceProvider())
// {
// rng.GetBytes(keyBytes);
// }
// return Convert.ToBase64String(keyBytes);
//}
//// AES 密钥(必须是 16、24 或 32 字节)
//private static readonly byte[] key = Encoding.UTF8.GetBytes("kGBxaThxMCMGaysp");
//// 初始化向量 IV必须是 16 字节)
//private static readonly byte[] iv = Encoding.UTF8.GetBytes("VXFxgTgcvSDEXHpC");
//public static string Encrypt(string plainText)
//{
// using (Aes aesAlg = Aes.Create())
// {
// aesAlg.Key = key;
// aesAlg.IV = iv;
// aesAlg.Mode = CipherMode.CBC;
// aesAlg.Padding = PaddingMode.PKCS7;
// // 创建加密器对象
// ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
// using (MemoryStream msEncrypt = new MemoryStream())
// {
// using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
// {
// using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
// {
// // 写入加密后的数据到内存流中
// swEncrypt.Write(plainText);
// }
// }
// // 返回加密后的数据的 Base64 字符串
// return Convert.ToBase64String(msEncrypt.ToArray());
// }
// }
//}
//public static string Decrypt(string cipherText)
//{
// byte[] cipherBytes = Convert.FromBase64String(cipherText);
// using (Aes aesAlg = Aes.Create())
// {
// aesAlg.Key = key;
// aesAlg.IV = iv;
// aesAlg.Mode = CipherMode.CBC;
// aesAlg.Padding = PaddingMode.PKCS7;
// // 创建解密器对象
// ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// using (MemoryStream msDecrypt = new MemoryStream(cipherBytes))
// {
// using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
// {
// using (StreamReader srDecrypt = new StreamReader(csDecrypt))
// {
// // 读取解密后的数据
// return srDecrypt.ReadToEnd();
// }
// }
// }
// }
//}
/// <summary>
/// 正常调用Get接口方法
/// </summary>
/// <param name="post_url"></param>
/// <returns></returns>
public static string get_page(string post_url)
{
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.UTF8;
// 准备请求...
try
{
// 设置参数
request = WebRequest.Create(post_url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
//默认值TimeOut100 秒
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页html代码
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
catch (Exception ex)
{
return ex.Message;
}
}
static void Main(string[] args)
{
//var dic_name = Path.Combine("Upload", "Cable", DateTime.Now.ToString("yyyy-MM-dd"), "" + Path.DirectorySeparatorChar);
//var test = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Json", "FaultTree.json");
//Console.WriteLine(test);
//var url = ConfigurationManager.AppSettings["url"].ToString();
//var result = get_page(url);
//Console.WriteLine(result);
Console.ReadKey();
//decimal total = 2.097m;
//int parts = 2;
//decimal exactPart = Math.Floor(total / parts); // 计算完全整数部分
//decimal remainder = total % parts; // 计算余数
//// 分配第一份,包括整数部分和可能的余数
//decimal firstPart = exactPart + (remainder > 0 ? 1m : 0m);
//remainder -= (remainder > 0 ? 1m : 0m); // 如果有余数,从余数中减去已分配的部分
//// 第二份则直接是另一部分
//decimal secondPart = exactPart + (remainder > 0 ? 0m : 0m);
//decimal select_score_model = 2.097m;
//int numberOfQuestions = 4;
//// 计算基本的每题分数,这里先不考虑余数
//decimal baseScorePerQuestion = select_score_model / numberOfQuestions;
//// 计算剩余的分数,这部分将被加到第一题上
//decimal remainingScore = select_score_model - (baseScorePerQuestion * numberOfQuestions);
//// 确保每份分数只保留3位小数
//decimal scorePerQuestionRounded = Math.Round(baseScorePerQuestion, 3, MidpointRounding.AwayFromZero);
//// 第一题分数加上所有剩余的分数由于之前已经四舍五入这里直接加剩余Score即可
//decimal firstQuestionScore = scorePerQuestionRounded + remainingScore;
//// 其他题目分数保持为四舍五入后的基本分数
//decimal otherQuestionScore = scorePerQuestionRounded;
//// 由于直接加剩余Score可能造成轻微的浮点运算误差这里再次校正以确保总和正确
//if (Math.Abs(firstQuestionScore + (otherQuestionScore * (numberOfQuestions - 1)) - select_score_model) > 0.0001m)
//{
// // 这里理论上不应该进入,但如果因为浮点运算误差导致不等,可以通过直接赋值确保总和正确
// firstQuestionScore = select_score_model - (otherQuestionScore * (numberOfQuestions - 1));
//}
//// 输出结果
//Console.WriteLine($"第一题分数: {firstQuestionScore}, 其他题分数: {otherQuestionScore}");
//Console.ReadKey();
//string plainText = "x1uz@n+C";
//string encryptedText = Encrypt(plainText);
//Console.WriteLine("加密后的文本: " + encryptedText);
//string decryptedText = Decrypt(encryptedText);
//Console.WriteLine("解密后的文本: " + decryptedText);
//Console.ReadKey();
//string randomKey = GenerateRandomKey(512);
//RuralPowerAPI test = new RuralPowerAPI();
//var result = test.Login("http://172.16.1.253:5003", "ceshi1", "", "gwndjs2022%");
//var resu = test.GetTrainList("http://172.16.1.253:5000", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJVU0VSMjAyMjA0MjExNTE2MDg5NjI1IiwibmJmIjoxNzE2Mjc4MDk2LCJleHAiOjE3MTYyODg4OTYsImlhdCI6MTcxNjI3ODA5NiwiaXNzIjoieW91cl9pc3N1ZXIifQ.ixNccN6jufwnLm2hbhioXmoyQ7E10XN_1vjksFzO__w", "USER202204211516089625", "1", "10");
//var result = test.ChangePassword("http://172.16.1.253:5000", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJVU0VSMjAyMjA0MjExNTE2MDg5NjI1IiwibmJmIjoxNzEzNDkyMjQxLCJleHAiOjE3MTM1MDMwNDEsImlhdCI6MTcxMzQ5MjI0MSwiaXNzIjoieW91cl9pc3N1ZXIifQ.btET0utMtB9kJvjH1ajJrSz0ov_PDHw1KLeQou9qfTo", "wangtianxing", "kfb263", "kfb263");
//var resul1 = test.StartExam("http://172.16.1.253:5003", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJVU0VSMjAyMjA0MjExNTE2MDg5NjI1IiwibmJmIjoxNzEyODA2NTgzLCJleHAiOjE3MTI4MTczODMsImlhdCI6MTcxMjgwNjU4MywiaXNzIjoieW91cl9pc3N1ZXIifQ.wAc_GIx-evY4nEUJQFdFrWqlkmjobQFp0hY61bRVJFA", "c7080a513ec043f2baf695e866efcb67");
//var result = test.GetExam("http://172.16.1.253:5000", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJVU0VSMjAyMjA0MjExNTE2MDg5NjI1IiwibmJmIjoxNzEyNjQxNjkwLCJleHAiOjE3MTI2NDg4OTAsImlhdCI6MTcxMjY0MTY5MCwiaXNzIjoieW91cl9pc3N1ZXIifQ.6ZH006cuW5IEqu41MsQr92TAbSaUYcWp8DfNxHrnZdI", "USER202204211516089625");
//Console.WriteLine(result);
//Console.ReadKey();
//var result = test.UploadFile("http://192.168.1.213:8088", "c7080a513ec043f2baf695e866efcb67", "USER202204211516089625", "测试", "C:\\Users\\Public\\Nwt\\cache\\recv\\吕浩\\04_user-2022-08-18-52150s-800x600.mp4");
//Console.WriteLine(result);
//Font LabelFont = new Font("Adobe 黑体 Std R", 50); //设置字体、字号、是否加粗
//SolidBrush labelColor = new SolidBrush(Color.Black);//设置字体颜色
//MemoryStream ms = new MemoryStream(File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "/Img/BaseMap.jpg"));//底图
//Image imgSource = Image.FromStream(ms);//底图
//Graphics graphics = Graphics.FromImage(imgSource);//设置画图对象
//StringFormat sf = new StringFormat();//位置对象
//sf.Alignment = StringAlignment.Near;//左对齐,使用时看一下注释,尝试一下,和矩形框有关系
// //sf.Alignment = StringAlignment.Center;//居中
// //sf.Alignment = StringAlignment.Near;//右对齐
//Rectangle rt1 = new Rectangle(240, 155, imgSource.Width, imgSource.Height);//绘图区域框0x方向开始位置20y方向开始位置宽和高是矩形的宽和高
//graphics.DrawString("台区二1#配变0.4kV411东线出线电缆", LabelFont, labelColor, rt1, sf);
//Rectangle rt2 = new Rectangle(240, 230, imgSource.Width, imgSource.Height);
//graphics.DrawString("台区二1#配变低压综合配电箱411熔断器", LabelFont, labelColor, rt2, sf);
//Rectangle rt3 = new Rectangle(240, 305, imgSource.Width, imgSource.Height);
//graphics.DrawString("台区二1#配变0.4kV411东线001#杆", LabelFont, labelColor, rt3, sf);
//Rectangle rt4 = new Rectangle(360, 380, imgSource.Width, imgSource.Height);
//graphics.DrawString("YJLV22-4*150/12米", LabelFont, labelColor, rt4, sf);
//Rectangle rt5 = new Rectangle(360, 455, imgSource.Width, imgSource.Height);
//graphics.DrawString("配电工程处", LabelFont, labelColor, rt5, sf);
//Rectangle rt6 = new Rectangle(240, 530, imgSource.Width, imgSource.Height);
//graphics.DrawString("2019年8月16日", LabelFont, labelColor, rt6, sf);
////graphics.DrawString("另一种写法我在x、y位置", LabelFont, labelColor, x, y);//相对于左上角的x、y坐标
//imgSource.Save(AppDomain.CurrentDomain.BaseDirectory +"测试.jpg");
//graphics.Dispose();
}
}
}