按照客户要求将excel导出文件保存为一个条码一条记录,名称为SN_结果_时间.xslx
This commit is contained in:
168
SLZ_4/HTTPCom.cs
Normal file
168
SLZ_4/HTTPCom.cs
Normal 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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user