登录时,密码+CKEY密码验证
读GCM配置,判定账号是否需要验证;需要验证,就拆分字符串,后六位+剩余部分;post请求去验证
1.AESUtil对称加密
2.HttpWebRequest、HttpWebResponse、StreamReader
- 创建请求,获取响应流;
- 请求分get、post两种方式;(*)
- 读取响应流信息,用到StreamReader ,string类型的(符合JSON格式的)
- JSON格式、实体类(实体列表)之间的转化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | public static string HttpPost( string url, string jsonStr) { HttpWebRequest request = null ; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3 | (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072; ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((sender, certificate, chain, errors) => true ); //验证服务器证书回调自动验证 try { request = (HttpWebRequest)WebRequest.Create(url); //创建一个HTTP请求 } catch (Exception ex) { Console.WriteLine( "Http Post请求 创建失败!" + ex.Message); //throw new Exception("Http请求创建失败", ex); return null ; } request.Method = "POST" ; //Post请求方式 request.ContentType = "application/json" ; //内容类型 request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36" ; byte [] byteArray; //设置参数,并进行URL编码 if (jsonStr == null ) { jsonStr = "" ; } byteArray = System.Text.Encoding.UTF8.GetBytes(jsonStr); //将Json字符串转化为字节byte数组 request.ContentLength = byteArray.Length; //设置请求的ContentLength Stream writer; try { writer = request.GetRequestStream(); //获取用于写入请求数据的Stream对象 } catch (Exception ex) { Console.WriteLine( "获取Http请求写入流失败!" + ex.Message); return null ; } writer.Write(byteArray, 0, byteArray.Length); //将请求参数写入流 writer.Close(); //关闭请求流 HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); //获得响应流 } catch (WebException ex) { Console.WriteLine( "获取Http响应流失败!" + ex.Message); return null ; } Stream responseStream = response.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream, Encoding.GetEncoding( "UTF-8" )); string postContent = streamReader.ReadToEnd(); streamReader.Close(); return postContent; //Post请求后服务器返回的数据 } } |
3.C#使用JavaScriptSerializer类实现序列化与反序列化
System.Web.Script.Serialization 命名空间
列表→JSON,序列化;JSON→列表,反序列化
C#使用JavaScriptSerializer类实现序列化与反序列化得到JSON_c# javascriptserializer-CSDN博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2018-01-11 C# 类型转换相关
2018-01-11 C# 枚举
2018-01-11 C# 变量和表达式