using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.IO;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using SupplierWeb.Service;
using System.Reflection;
namespace SupplierWeb.Commonss
{
public static class Util
{
///
/// 把Model转换为DataRow
///
///
///
///
public static T ParseDictionaryToModel(Dictionary dict)
{
//
T obj = default(T);
obj = Activator.CreateInstance();
//根据Key值设定 Columns
foreach (KeyValuePair item in dict)
{
PropertyInfo prop = obj.GetType().GetProperty(item.Key);
if(null != prop && null != (item.Value))
{
object value = item.Value;
//Nullable 获取Model类字段的真实类型
Type itemType = Nullable.GetUnderlyingType(prop.PropertyType) == null ? prop.PropertyType : Nullable.GetUnderlyingType(prop.PropertyType);
//根据Model类字段的真实类型进行转换
prop.SetValue(obj, Convert.ChangeType(value, itemType), null);
}
}
return obj;
}
static string HOST = "http://192.168.50.41:9200/";
public static string ElasticCall(string url, string method, string query)
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(HOST + url);
myReq.Method = method;
var headers = new WebHeaderCollection();
headers.Add("Content-Type", "application/json");
myReq.Headers = headers;
if (method == "POST")
{
using (var streamWriter = new StreamWriter(myReq.GetRequestStream()))
{
string json = query;
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
}
HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
string responseString = respStreamReader.ReadToEnd();
respStreamReader.Close();
myResp.Close();
return responseString;
}
public static string ElasticQuery(string url, string method, string query)
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(HOST + url);
myReq.Method = method;
var headers = new WebHeaderCollection();
headers.Add("Content-Type", "application/json");
myReq.Headers = headers;
if (method == "POST")
{
using (var streamWriter = new StreamWriter(myReq.GetRequestStream()))
{
string json = query;
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
}
HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
string responseString = respStreamReader.ReadToEnd();
respStreamReader.Close();
myResp.Close();
return responseString;
}
public static JObject SqlQuery(string query)
{
var json = "{\"query\":\"" + query +
"\"}";
var str = ElasticCall( "_sql?format=json", "POST", json);
var result = (JObject)JsonConvert.DeserializeObject(str);
return result;
}
public static string WechatHttp(string url, string method, string query)
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.Method = method;
var headers = new WebHeaderCollection();
headers.Add("Content-Type", "application/json");
myReq.Headers = headers;
if (method == "POST")
{
using (var streamWriter = new StreamWriter(myReq.GetRequestStream()))
{
string json = query;
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
}
HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
string responseString = respStreamReader.ReadToEnd();
respStreamReader.Close();
myResp.Close();
return responseString;
}
}
}