using System.Net.Cache;
|
using System.Net;
|
using System.Text;
|
using Newtonsoft.Json;
|
using System.Data.SqlClient;
|
|
|
namespace Gs.Toolbox;
|
|
public class InterfaceUtil
|
{
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="param">json参数</param>
|
/// <param name="edtUserGuid"></param>
|
/// <param name="abtGuid"></param>
|
/// <param name="hNo"></param>
|
/// <param name="urlType">如果为2,则是更新工单状态</param>
|
/// <returns>如果成功返回日志guid,否则返回串</returns>
|
public static (int, string) HttpPostErp(string param, string edtUserGuid = "", string abtGuid = "", string hNo = "", int urlType = 0)
|
{
|
System.Text.StringBuilder sbTm = new System.Text.StringBuilder();
|
sbTm.Append(DateTime.Now.ToString() + "开始发送");
|
string strLogGuid = Guid.NewGuid().ToString();
|
string url = AppSettingsHelper.getValueByKey("TestErpUrl");
|
if (urlType == 2)
|
url = AppSettingsHelper.getValueByKey("TestErpUrl2");
|
HttpWebRequest request = null;
|
StreamWriter requestStream = null;
|
WebResponse response = null;
|
string responseStr = "";
|
try
|
{
|
request = (HttpWebRequest)WebRequest.Create(url);
|
request.Method = "POST";
|
request.ContentType = "application/json";
|
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();
|
reader.Close();
|
}
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Debug(url, "HttpPostErp param:" + param + ",ex:" + ex.Message);
|
responseStr = ex.Message;
|
// throw ex;
|
}
|
finally
|
{
|
request = null;
|
requestStream = null;
|
response = null;
|
}
|
Result _result = JsonConvert.DeserializeObject<Result>(responseStr);
|
int _rtn = 0;
|
if ("200".Equals(_result.state))
|
_rtn = 1;
|
sbTm.Append("," + DateTime.Now.ToString() + "结束发送");
|
if (_rtn > 0)
|
sbTm.Append(",发送成功");
|
else
|
sbTm.Append(",发送失败,mes退出操作");
|
try
|
{
|
SqlParameter[] parameters =
|
{
|
new("@edtUserGuid", edtUserGuid),
|
new("@abtGuid", abtGuid),
|
new("@abtTable", ""),
|
new("@detail", sbTm.ToString()),
|
new("@hNo", hNo),
|
new("@RtnLogGuid", strLogGuid),
|
new("@SendJson", param),
|
new("@RtnJson", responseStr),
|
};
|
DbHelperSQL.RunProcedure("[prc_log_create]", parameters);
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Debug(url, "HttpPostErp 写入日志表" + ex.Message);
|
}
|
return (_rtn, (_rtn > 0 ? strLogGuid : responseStr));
|
}
|
}
|
|
public class Result
|
{
|
/// <summary>
|
/// 200成功,否则失败
|
/// </summary>
|
public string? state { get; set; }
|
public string? msg { get; set; }
|
|
public string? status { get; set; }
|
|
public string? message { get; set; }
|
}
|