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"];
|
|
/// <summary>
|
/// http请求
|
/// </summary>
|
/// <param name="url">api根地址</param>
|
/// <param name="meth">方法名称</param>
|
/// <param name="param">json参数</param>
|
/// <param name="isLoading">是否loading</param>
|
/// <returns></returns>
|
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;
|
}
|
|
|
/// <summary>
|
/// 生成访问服务的token
|
/// </summary>
|
/// <returns></returns>
|
public static string GetBasicAuthTicket()
|
{
|
var userGuid = "11111111-1111-1111-1111-111111111111";
|
var token = userGuid;
|
return token;
|
}
|
|
/// <summary>
|
/// 服务返回的json返回ReturnModel,
|
/// </summary>
|
/// <param name="strReturn"></param>
|
/// <returns></returns>
|
public static ReturnModel<dynamic> ReturnToDynamic(string strReturn)
|
{
|
var rto = new ReturnModel<dynamic>();
|
var json = JObject.Parse(strReturn);
|
rto.rtnCode = int.Parse(json["rtnCode"].ToString());
|
rto.rtnMsg = json["rtnMsg"].ToString();
|
rto.rtnData = json["rtnData"];
|
return rto;
|
}
|
/// <summary>
|
/// 服务返回的json串返回ReturnModel-->仅仅有list,不分页,
|
/// </summary>
|
/// <param name="strReturn"></param>
|
/// <returns></returns>
|
public static ReturnModel<DataTable> ReturnToList(string strReturn)
|
{
|
var rto = new ReturnModel<DataTable>();
|
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<DataTable>(array.ToString());
|
rto.rtnData = dt;
|
return rto;
|
}
|
/// <summary>
|
/// 服务返回的json转为ReturnModel-->包含TablePage分页,
|
/// </summary>
|
/// <param name="strReturn"></param>
|
/// <returns></returns>
|
public static ReturnModel<PageListModel> ReturnToTablePage(
|
string strReturn)
|
{
|
var rto = new ReturnModel<PageListModel>();
|
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<DataTable>(array.ToString());
|
rto.rtnData.list = dt;
|
return rto;
|
}
|
|
|
}
|
}
|