using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using PDF_Office.Properties;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace PDF_Office.Helper
{
///
/// 注册登陆相关的工具类
///
///
public static class ServiceHelper
{
public static string ALLEmail = "";
public static string ALLPassword = "";
public static string access_token = "";
public static string outemail = "";
public static string outcode = "";
public static string outregister = "";
public static string outlogin = "";
public static string code = "";
public static string okcode = "";
public static string remsg = "";
public static string state = "";
public static string AppCode = "com.brother.pdfreaderprofree.windows";
public static string RequestHost = "http://139.196.160.101:8081";
//验证邮箱
public static string OKemailUrl = "/pdf-office-sso/auth/validUser";
//验证验证码
public static string OKcodeUrl = "/pdf-office-sso/auth/isEmailCodeValid";
//发送验证码
public static string GetcodeUrl = "/pdf-office-sso/auth/getVerifyCode";
//注册邮箱
public static string registerUrl = "/pdf-office-sso/auth/emailRegister";
//登录
public static string LoginUrl = "/pdf-office-sso/auth/emailLogin";
//登出
public static string LogoutUrl = "/pdf-office-sso/user/logout";
//注销
public static string UseroutUrl = "/pdf-office-sso/user/logOffForUser";
//重置密码
public static string RebirthUrl = "/pdf-office-sso/auth/resetPassword";
//获取用户信息
public static string GetUserUrl = "/pdf-office-sso/user/me";
public static String GetUser()
{
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + GetUserUrl+"");
request.Method = "Get";
request.Headers.Add("Authorization", $"Bearer {Settings.Default.AppProperties.LoginToken}");
request.ContentType = "text/html;charset=UTF-8";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
try
{
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return jobject["email"].ToObject().ToLower();
}
}
catch
{
return "";
}
}
public static String Ok_email(string intemail,string validType)
{
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + OKemailUrl);
request.Method = "Post";
request.ContentType = "application/json";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
StringWriter sw = new StringWriter();
using (JsonWriter writer = new JsonTextWriter(sw))
{
writer.WriteStartObject();
writer.WritePropertyName("appId");
writer.WriteValue(16);
writer.WritePropertyName("platformType");
writer.WriteValue(0);
writer.WritePropertyName("username");
writer.WriteValue(intemail);
writer.WritePropertyName("validType");
writer.WriteValue(validType);
writer.WriteEndObject();
}
string postBody = sw.ToString();
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(postBody);
writer.Close();
}
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
//outemail = jobject["msg"].ToObject().ToLower();
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return jobject["msg"].ToObject().ToLower();
}
}
public static void Get_code(string action, string email)
{
string post = $"?action={action}&appId=16&receiver={email}&type=0";
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + GetcodeUrl + post);
request.Method = "Get";
request.ContentType = "text/html;charset=UTF-8";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
}
}
public static String Ok_code(string email, string code, string type)
{
string post = $"?account={email}&code={code}&type={type}&appId=16";
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + OKcodeUrl + post);
request.Method = "Get";
request.ContentType = "text/html;charset=UTF-8";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return jobject["msg"].ToObject().ToLower();
}
}
public static String Register_email(string intemail, string intpassword, string intcode, string uuid)
{
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + registerUrl);
request.Method = "Post";
request.ContentType = "application/json";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
StringWriter sw = new StringWriter();
using (JsonWriter writer = new JsonTextWriter(sw))
{
writer.WriteStartObject();
writer.WritePropertyName("appId");
writer.WriteValue(16);
writer.WritePropertyName("deviceSign");
writer.WriteValue(uuid);
writer.WritePropertyName("password");
writer.WriteValue(intpassword);
writer.WritePropertyName("platformType");
writer.WriteValue(0);
writer.WritePropertyName("username");
writer.WriteValue(intemail);
writer.WritePropertyName("verifyCode");
writer.WriteValue(intcode);
writer.WriteEndObject();
}
string postBody = sw.ToString();
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(postBody);
writer.Close();
}
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return jobject["msg"].ToObject().ToLower();
}
}
public static String Login(string intemail, string intpassword, string uuid)
{
string postBody = $"?appId=16&deviceSign={uuid}&email={intemail}&password={intpassword}&platformType=0";
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + LoginUrl + postBody);
request.Method = "Post";
request.ContentType = "application/x-www-form-urlencoded";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
outlogin = jobject["msg"].ToObject().ToLower();
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
if (jobject["msg"].ToObject().ToLower() == "success")
{
access_token = jobject["result"]["access_token"].ToObject().ToLower();
Settings.Default.AppProperties.LoginToken= jobject["result"]["access_token"].ToObject().ToLower();
Settings.Default.Save();
}
return jobject["msg"].ToObject().ToLower();
}
}
public static void Logout(string uuid)
{
string postBody = $"?deviceSign={uuid}&appId=16";
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + LogoutUrl + postBody);
request.Method = "Post";
request.Headers.Add("Authorization", $"Bearer {Settings.Default.AppProperties.LoginToken}");
request.ContentType = "application/x-www-form-urlencoded";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
}
}
public static String Usergout(string code)
{
string postBody = $"?code={code}";
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + UseroutUrl + postBody);
request.Method = "Post";
request.Headers.Add("Authorization", $"Bearer {Settings.Default.AppProperties.LoginToken}");
request.ContentType = "application/x-www-form-urlencoded";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return jobject["msg"].ToObject().ToLower();
}
}
public static String Rebirth(string intemail, string firstpassword, string secondPassword, string intcode)
{
HttpWebResponse response = null;
ServicePointManager.DefaultConnectionLimit = 200;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + RebirthUrl);
request.Method = "Post";
request.ContentType = "application/json";
//request.Accept = "application/vnd.api+json;version=1";
request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
StringWriter sw = new StringWriter();
using (JsonWriter writer = new JsonTextWriter(sw))
{
writer.WriteStartObject();
writer.WritePropertyName("account");
writer.WriteValue(intemail);
writer.WritePropertyName("appId");
writer.WriteValue(16);
writer.WritePropertyName("firstPassword");
writer.WriteValue(firstpassword);
writer.WritePropertyName("platformType");
writer.WriteValue(0);
writer.WritePropertyName("secondPassword");
writer.WriteValue(secondPassword);
writer.WritePropertyName("verifyCode");
writer.WriteValue(intcode);
writer.WriteEndObject();
}
string postBody = sw.ToString();
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(postBody);
writer.Close();
}
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return jobject["msg"].ToObject().ToLower();
}
}
}
}