using System.Net.Cache;
using System.Net;
using System.Text;
using Newtonsoft.Json;
using System.Data.SqlClient;
namespace Gs.Toolbox;
public class InterfaceUtil
{
///
///
///
/// json参数
///
///
///
/// 如果为2,则是更新工单状态
/// 如果成功返回日志guid,否则返回串
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(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
{
///
/// 200成功,否则失败
///
public string? state { get; set; }
public string? msg { get; set; }
public string? status { get; set; }
public string? message { get; set; }
}