|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Concurrent;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Configuration;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Net;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
|
|
|
|
|
namespace demo.DbModule
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public class RequestData
|
|
|
|
|
{
|
|
|
|
|
public string cBarCode { get; set; }
|
|
|
|
|
|
|
|
|
|
public string cStatus { get; set; }
|
|
|
|
|
|
|
|
|
|
public string cMode { get; set; }
|
|
|
|
|
|
|
|
|
|
public string cFileName { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static class LFData
|
|
|
|
|
{
|
|
|
|
|
private static string logPath;
|
|
|
|
|
|
|
|
|
|
static LFData()
|
|
|
|
|
{
|
|
|
|
|
logPath = ConfigurationManager.AppSettings["Data"];
|
|
|
|
|
if(!string.IsNullOrEmpty(logPath))
|
|
|
|
|
{
|
|
|
|
|
logPath = "D:\\Data";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="barcode">产品的SN</param>
|
|
|
|
|
/// <param name="status">Pass/Fail</param>
|
|
|
|
|
/// <param name="filename">文件名</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static string Post(string barcode, string status, string filename)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
string ret = string.Empty;
|
|
|
|
|
string data = "[{\"cBarCode\":\"{0}\",\"cStatus\":\"{1}\",\"cFileName\":\"{2}\"}]";
|
|
|
|
|
data = string.Format(data, barcode, status, filename);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string reqUrl = ConfigurationManager.AppSettings["mesUrl"];
|
|
|
|
|
WebRequest request = HttpWebRequest.Create(reqUrl);
|
|
|
|
|
request.ContentType = "application/json";
|
|
|
|
|
request.Method = "POST";
|
|
|
|
|
byte[] writeData = Encoding.UTF8.GetBytes(data);
|
|
|
|
|
Stream reqRequest = request.GetRequestStream();
|
|
|
|
|
StreamWriter sw = new StreamWriter(reqRequest);
|
|
|
|
|
sw.Write(writeData);
|
|
|
|
|
sw.Flush();
|
|
|
|
|
using (WebResponse reponse = request.GetResponse())
|
|
|
|
|
{
|
|
|
|
|
Stream resStream = reponse.GetResponseStream();
|
|
|
|
|
StreamReader reader = new StreamReader(resStream);
|
|
|
|
|
ret = reader.ReadLine();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
|
{
|
|
|
|
|
//记录日志
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void Log(string content)
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrEmpty(content))
|
|
|
|
|
{
|
|
|
|
|
string dirpath = Path.Combine(logPath, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
|
|
|
if (!System.IO.Directory.Exists(dirpath))
|
|
|
|
|
{
|
|
|
|
|
System.IO.Directory.CreateDirectory(dirpath);
|
|
|
|
|
}
|
|
|
|
|
File.AppendAllText(System.IO.Path.Combine(dirpath, "request.txt"), content);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static string Post(string url,RequestData[] reqData)
|
|
|
|
|
{
|
|
|
|
|
string requestBody = string.Empty;
|
|
|
|
|
if (reqData != null)
|
|
|
|
|
{
|
|
|
|
|
requestBody = JsonConvert.SerializeObject(reqData);
|
|
|
|
|
}
|
|
|
|
|
return Post(url, null, null, requestBody);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static string Post(string baseUrl, Dictionary<string, string> headers, Dictionary<string, string> urlParas, string requestBody=null)
|
|
|
|
|
{
|
|
|
|
|
var resuleJson = string.Empty;
|
|
|
|
|
Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")+" >>> :" + requestBody);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var apiUrl = baseUrl;
|
|
|
|
|
|
|
|
|
|
if (urlParas != null)
|
|
|
|
|
{
|
|
|
|
|
foreach(KeyValuePair<string,string> kv in urlParas)
|
|
|
|
|
{
|
|
|
|
|
if (apiUrl.IndexOf("{" + kv.Key + "}") > -1)
|
|
|
|
|
{
|
|
|
|
|
apiUrl = apiUrl.Replace("{" + kv.Key + "}", kv.Value);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
apiUrl += string.Format("{0}{1}={2}", apiUrl.Contains("?") ? "&" : "?", kv.Key, kv.Value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var req = (HttpWebRequest)WebRequest.Create(apiUrl);
|
|
|
|
|
req.Method = "POST";
|
|
|
|
|
req.ContentType = "application/json"; //Defalt
|
|
|
|
|
req.Timeout = 2000;
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(requestBody))
|
|
|
|
|
{
|
|
|
|
|
using (var postStream = new StreamWriter(req.GetRequestStream()))
|
|
|
|
|
{
|
|
|
|
|
postStream.Write(requestBody);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (headers != null)
|
|
|
|
|
{
|
|
|
|
|
if (headers.Keys.Any(p => p.ToLower() == "content-type"))
|
|
|
|
|
req.ContentType = headers.SingleOrDefault(p => p.Key.ToLower() == "content-type").Value;
|
|
|
|
|
if (headers.Keys.Any(p => p.ToLower() == "accept"))
|
|
|
|
|
req.Accept = headers.SingleOrDefault(p => p.Key.ToLower() == "accept").Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var response = (HttpWebResponse)req.GetResponse();
|
|
|
|
|
|
|
|
|
|
using(Stream stream = response.GetResponseStream())
|
|
|
|
|
{
|
|
|
|
|
using (StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("UTF-8")))
|
|
|
|
|
{
|
|
|
|
|
resuleJson = reader.ReadToEnd();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return ex.Message;
|
|
|
|
|
}
|
|
|
|
|
Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")+" <<< :" + resuleJson);
|
|
|
|
|
return resuleJson;// JsonConvert.DeserializeObject<T>(resuleJson);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|