按照客户要求将excel导出文件保存为一个条码一条记录,名称为SN_结果_时间.xslx

This commit is contained in:
LL
2025-11-14 17:27:29 +08:00
commit 883060d140
79 changed files with 166110 additions and 0 deletions

168
SLZ_4/HTTPCom.cs Normal file
View File

@@ -0,0 +1,168 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace SLZ_4
{
class HTTPCom
{
private static string BaseUri;
private static string url;
public delegate bool CallbackGet(HttpWebResponse response, int nType, long nLen);
public delegate bool CallbackPost(StreamReader reader, long nLen);
public delegate bool CallbackPut(StreamReader reader, int nType, long nLen);
public void RestClient(string baseUri)
{
BaseUri = baseUri;
string[] strArray = baseUri.Split(':');
url = string.Format("{0}:{1}", strArray[0], strArray[1]);
}
#region Get请求
public static bool Get(string uri, int nType, string strToken, CallbackGet callbackGet)
{
//先根据用户请求的uri构造请求地址
// string serviceUrl = string.Format("{0}/{1}", BaseUri, uri);
// if (nType == (int)DataStruct.HTTPTYPE.GETPIC)
//{
// serviceUrl = string.Format("{0}/{1}", url, uri);
//}
//创建Web访问对 象
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(uri);
myRequest.Headers.Add("Authorization", strToken);
myRequest.KeepAlive = false;
//通过Web访问对象获取响应内容
HttpWebResponse myResponse;
try
{
myResponse = (HttpWebResponse)myRequest.GetResponse();
}
catch (Exception)
{
return false;
throw;
}
//通过响应内容流创建StreamReader对象因为StreamReader更高级更快
bool bRet = callbackGet(myResponse, nType, myResponse.ContentLength);
//string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
//bool bRet = DisplayGet(reader, nType);
myResponse.Close();
return bRet;
}
#endregion
#region Post请求
public static string Post(string data, string uri, CallbackPost callbackPost)
{
string serviceUrl = uri;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
//创建Web访问对象
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
myRequest.Method = "POST";
//myRequest.ContentType = "text/plain";
myRequest.ContentType = "application/json";
myRequest.MaximumAutomaticRedirections = 1;
myRequest.AllowAutoRedirect = true;
myRequest.KeepAlive = false;
myRequest.Timeout = 5000; //超时时间1S
//发送请求
if (data.Length > 0)
{
//把用户传过来的数据转成“UTF-8”的字节流
byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
myRequest.ContentLength = buf.Length;
//发送请求
try
{
Stream stream = myRequest.GetRequestStream();
stream.Write(buf, 0, buf.Length);
stream.Close();
}
catch (Exception ex)
{
FileLogger.Log("发送失败:" + ex.Message, LogLevel.ERROR);
return ex.Message;
}
}
//获取接口返回值
//通过Web访问对象获取响应内容
HttpWebResponse myResponse;
try
{
myResponse = (HttpWebResponse)myRequest.GetResponse();
}
catch (Exception ex)
{
if (ex != null)
{
FileLogger.Log("接受失败:" + ex.Message, LogLevel.ERROR);
return ex.Message;
}
else
{
return "";
}
}
//通过响应内容流创建StreamReader对象因为StreamReader更高级更快
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
if (callbackPost != null)
{
callbackPost(reader, myResponse.ContentLength);
}
string strRet = reader.ReadToEnd();
reader.Close();
myResponse.Close();
return strRet;
}
#endregion
#region Put请求
public static bool Put(string data, string uri, int nType, string strToken, CallbackPut callbackPut)
{
//先根据用户请求的uri构造请求地址
string serviceUrl = string.Format("{0}/{1}", BaseUri, uri);
//创建Web访问对象
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
//把用户传过来的数据转成“UTF-8”的字节流
byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
myRequest.Method = "PUT";
myRequest.ContentLength = buf.Length;
myRequest.ContentType = "application/json";
myRequest.MaximumAutomaticRedirections = 1;
myRequest.AllowAutoRedirect = true;
myRequest.Headers.Add("Authorization", strToken);
myRequest.KeepAlive = false;
//发送请求
Stream stream = myRequest.GetRequestStream();
stream.Write(buf, 0, buf.Length);
stream.Close();
//获取接口返回值
//通过Web访问对象获取响应内容
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
//通过响应内容流创建StreamReader对象因为StreamReader更高级更快
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
//string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
bool bRet = callbackPut(reader, nType, myResponse.ContentLength);
//string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
//reader.Close();
myResponse.Close();
return bRet;
}
#endregion
}
}