You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Txgy.EWS.Client.IDAL;
namespace Txgy.EWS.Client.DAL
{
public class WebDataAccess : IWebDataAccess
{
//protected string domain = "http://101.43.141.10:8090/api/v1/";
protected string domain = "http://localhost:5000/api/v1/";
public WebDataAccess()
{
domain = System.Configuration.ConfigurationManager.AppSettings["api_domain"].ToString();
}
public async Task<string> GetDatas(string url)
{
using (var client = new HttpClient())
{
var resp = await client.GetAsync(url);
return await resp.Content.ReadAsStringAsync();
}
}
public MultipartFormDataContent GetFormData(Dictionary<string, HttpContent> contents)
{
var postContent = new MultipartFormDataContent();
string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
postContent.Headers.Add("ContentType", $"multipart/form-data, boundary={boundary}");
foreach (var item in contents)
{
postContent.Add(item.Value, item.Key);
}
return postContent;
}
public async Task<string> PostDatas(string url, HttpContent content)
{
using (var client = new HttpClient())
{
var resp = await client.PostAsync(url, content);
return await resp.Content.ReadAsStringAsync();
}
}
public async Task<string> GetFileList()
{
//return await this.GetDatas($"{domain}file/list");
using (var client = new HttpClient())
{
var resp = await client.GetAsync($"{domain}file/check");
return await resp.Content.ReadAsStringAsync();
}
}
/// <summary>
/// 登录
/// </summary>
/// <param name="un">userName</param>
/// <param name="pwd">passWord</param>
/// <returns></returns>
public async Task<string> Login(string un, string pwd)
{
//创建FormData请求
var postContent = new MultipartFormDataContent();
//设置时间格式
string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
//添加头信息
postContent.Headers.Add("ContentType", $"multipart/form-data, boundary={boundary}");
//[HttpPost]
//[Route("login")]
//public IActionResult Login([FromForm] string userName, [FromForm] string pwd)
//对应server中LoginController下的Login方法中的userName参数
postContent.Add(new StringContent(un), "username");
//对应server中LoginController下的Login方法中的pwd参数
postContent.Add(new StringContent(pwd), "pwd");
using (var client = new HttpClient())
{
//提交Post请求
var resp = await client.PostAsync($"{domain}login/login", postContent);
//返回字符串数据
var data = await resp.Content.ReadAsStringAsync();
return data;
}
}
public async Task<string> Login(string un, string pwd,string md5)
{
//创建FormData请求
var postContent = new MultipartFormDataContent();
//设置时间格式
string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
//添加头信息
postContent.Headers.Add("ContentType", $"multipart/form-data, boundary={boundary}");
//[HttpPost]
//[Route("login")]
//public IActionResult Login([FromForm] string userName, [FromForm] string pwd)
//对应server中LoginController下的Login方法中的userName参数
postContent.Add(new StringContent(un), "username");
//对应server中LoginController下的Login方法中的pwd参数
postContent.Add(new StringContent(pwd), "pwd");
postContent.Add(new StringContent(md5), "md5");
using (var client = new HttpClient())
{
var resp = await client.PostAsync($"{domain}login/login", postContent);
var data = await resp.Content.ReadAsStringAsync();
return data;
}
}
}
}