| | |
| | | string url = AppSettingsHelper.getValueByKey("TestErpUrl") + keyUrl; |
| | | if (urlType == 2) |
| | | url = AppSettingsHelper.getValueByKey("TestErpUrl2") + keyUrl; |
| | | |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", |
| | | $"方法入口 - url:{url}, urlType:{urlType}, hNo:{hNo}, param长度:{param.Length}, param前200字符:{(param.Length > 200 ? param.Substring(0, 200) : param)}"); |
| | | |
| | | HttpWebRequest request = null; |
| | | StreamWriter requestStream = null; |
| | | WebResponse response = null; |
| | | string responseStr = ""; |
| | | try |
| | | { |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", $"开始创建HTTP请求 - URL:{url}"); |
| | | request = (HttpWebRequest)WebRequest.Create(url); |
| | | request.Method = "POST"; |
| | | request.ContentType = "application/json"; |
| | |
| | | new HttpRequestCachePolicy(HttpRequestCacheLevel |
| | | .NoCacheNoStore); |
| | | request.CachePolicy = noCachePolicy; |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", "HTTP请求配置完成,开始发送数据"); |
| | | requestStream = new StreamWriter(request.GetRequestStream()); |
| | | requestStream.Write(param); |
| | | requestStream.Close(); |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", "数据发送完成,等待响应"); |
| | | response = request.GetResponse(); |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", "收到响应"); |
| | | if (response != null) |
| | | { |
| | | var reader = new StreamReader(response.GetResponseStream(), |
| | | Encoding.UTF8); |
| | | responseStr = reader.ReadToEnd(); |
| | | reader.Close(); |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", |
| | | $"响应读取完成 - 响应长度:{responseStr.Length}, 响应内容:{responseStr}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | |
| | | if (_rtn != -1) |
| | | { |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", $"开始解析响应JSON - responseStr:{responseStr}"); |
| | | Result _result = JsonConvert.DeserializeObject<Result>(responseStr); |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", |
| | | $"JSON解析完成 - status:{_result?.status}, message:{_result?.message}, doc_no:{_result?.data?.doc_no}"); |
| | | // 新判断规则:status=0 且 message=Success 才算成功 |
| | | if (_result?.status == "0" && _result?.message == "Success") |
| | | { |
| | | _rtn = 1; |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", "判断结果:成功"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", |
| | | $"判断结果:失败 - status不为0或message不为Success"); |
| | | } |
| | | docNo = _result.data.doc_no; |
| | | } |
| | | |
| | |
| | | sbLog.Append(",发送成功"); |
| | | |
| | | //发送成功反写erp单号 |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", |
| | | $"开始调用存储过程反写ERP单号 - hNo:{hNo}, erpNo:{docNo}, Api:{keyUrl}"); |
| | | |
| | | SqlParameter[] parameters = |
| | | { |
| | | new("@hNo", hNo), |
| | |
| | | new("@in2", ""), |
| | | }; |
| | | DbHelperSQL.RunProcedure("[prc_Rev_ErpNo]", parameters); |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", "反写ERP单号完成"); |
| | | } |
| | | else |
| | | { |
| | | sbLog.Append(",发送失败,mes退出操作"); |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", $"发送失败 - _rtn:{_rtn}"); |
| | | } |
| | | try |
| | | { |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", "开始写入日志表"); |
| | | SqlParameter[] parameters = |
| | | { |
| | | new("@edtUserGuid", edtUserGuid), |
| | |
| | | new("@isErp", 1), |
| | | }; |
| | | DbHelperSQL.RunProcedure("[prc_log_create]", parameters); |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", "日志表写入完成"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(url, "HttpPostErp 写入日志表" + ex.Message); |
| | | } |
| | | |
| | | LogHelper.Debug("InterfaceUtil.HttpPostErp", |
| | | $"方法结束 - 返回值:(_rtn:{_rtn}, {(_rtn > 0 ? "strLogGuid:" + strLogGuid : "responseStr:" + responseStr)})"); |
| | | return (_rtn, (_rtn > 0 ? strLogGuid : responseStr)); |
| | | } |
| | | |