using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Cache;
using System.Text;
using System.Threading.Tasks;
namespace Gs.WeightIqc.ToolBox
{
public class UtilityHelper
{
private static readonly string WebApiUrl =
ConfigurationManager.AppSettings["WebApiUrl"];
///
/// http请求
///
/// api根地址
/// 方法名称
/// json参数
/// 是否loading
///
public static string HttpPost(string url, string meth, string param, bool isLoading = true)
{
HttpWebRequest request = null;
StreamWriter requestStream = null;
WebResponse response = null;
string responseStr = null;
try
{
if (string.IsNullOrEmpty(url))
url = WebApiUrl;
url += meth;
request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("token", GetBasicAuthTicket());
request.Accept = "*/*";
request.Timeout = 150000;
request.AllowAutoRedirect = false;
request.ServicePoint.Expect100Continue = false;
HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
request.CachePolicy = noCachePolicy;
requestStream = new StreamWriter(request.GetRequestStream());
requestStream.Write(param);
requestStream.Close();
response = request.GetResponse();
if (response != null)
{
var reader = new StreamReader(response.GetResponseStream(),
Encoding.UTF8);
responseStr = reader.ReadToEnd();
//File.WriteAllText(Server.MapPath("~/") + @"\test.txt", responseStr);
reader.Close();
}
}
catch (Exception ex)
{
LogHelper.Debug(url, param + ":" + ex.Message);
throw ex;
}
finally
{
request = null;
requestStream = null;
response = null;
}
return responseStr;
}
///
/// 生成访问服务的token
///
///
public static string GetBasicAuthTicket()
{
var userGuid = "11111111-1111-1111-1111-111111111111";
var token = userGuid;
return token;
}
///
/// 服务返回的json返回ReturnModel,
///
///
///
public static ReturnModel ReturnToDynamic(string strReturn)
{
var rto = new ReturnModel();
var json = JObject.Parse(strReturn);
rto.rtnCode = int.Parse(json["rtnCode"].ToString());
rto.rtnMsg = json["rtnMsg"].ToString();
rto.rtnData = json["rtnData"];
return rto;
}
///
/// 服务返回的json串返回ReturnModel-->仅仅有list,不分页,
///
///
///
public static ReturnModel ReturnToList(string strReturn)
{
var rto = new ReturnModel();
var json = JObject.Parse(strReturn);
rto.rtnCode = int.Parse(json["rtnCode"].ToString());
rto.rtnMsg = json["rtnMsg"].ToString();
rto.rtnData = new DataTable();
var array = new JArray();
var d = json["rtnData"];
foreach (var a in d) array.Add(a);
//if (array.Count <=0)
// return null;
var dt = JsonConvert.DeserializeObject(array.ToString());
rto.rtnData = dt;
return rto;
}
///
/// 服务返回的json转为ReturnModel-->包含TablePage分页,
///
///
///
public static ReturnModel ReturnToTablePage(
string strReturn)
{
var rto = new ReturnModel();
var json = JObject.Parse(strReturn);
rto.rtnCode = int.Parse(json["rtnCode"].ToString());
rto.rtnMsg = json["rtnMsg"].ToString();
rto.rtnData = new PageListModel();
rto.rtnData.pages = int.Parse(json["rtnData"]["pages"].ToString());
rto.rtnData.total = int.Parse(json["rtnData"]["total"].ToString());
rto.rtnData.everyPageSize =
int.Parse(json["rtnData"]["everyPageSize"].ToString());
var array = new JArray();
var d = json["rtnData"]["list"];
foreach (var a in d) array.Add(a);
var dt = JsonConvert.DeserializeObject(array.ToString());
rto.rtnData.list = dt;
return rto;
}
}
}