南骏 池
2025-04-15 ce9702d2e5699c4c9acbed52da1fb6052ec68c6c
service/QC/OAJyService.cs
@@ -173,66 +173,66 @@
    }
    public dynamic SumbitIQCToOA(dynamic queryObj)
    {
        try
        {
            ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
    //public dynamic SumbitIQCToOA(dynamic queryObj)
    //{
    //    try
    //    {
    //        ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
    //        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            var request = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "POST";
            request.Timeout = 20000;  // 20秒超时
            request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";  // 明确指定编码
    //        var request = WebRequest.Create(url) as HttpWebRequest;
    //        request.Method = "POST";
    //        request.Timeout = 20000;  // 20秒超时
    //        request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";  // 明确指定编码
            // 添加调试头信息
            request.Headers.Add("appid", APPID);
            request.Headers.Add("token", token);
            request.Headers.Add("userId", userId);
    //        // 添加调试头信息
    //        request.Headers.Add("appid", APPID);
    //        request.Headers.Add("token", token);
    //        request.Headers.Add("userId", userId);
            // 构建带时区的日期参数
            var postData = new StringBuilder();
            var dateParam = DateTime.Now.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:sszzz");
            postData.AppendFormat("KQSDATE={0}&KQEDATE={1}",
                Uri.EscapeDataString(dateParam),
                Uri.EscapeDataString(dateParam));
    //        // 构建带时区的日期参数
    //        var postData = new StringBuilder();
    //        var dateParam = DateTime.Now.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:sszzz");
    //        postData.AppendFormat("KQSDATE={0}&KQEDATE={1}",
    //            Uri.EscapeDataString(dateParam),
    //            Uri.EscapeDataString(dateParam));
            byte[] byteData = Encoding.UTF8.GetBytes(postData.ToString());  // 改用UTF8编码
    //        byte[] byteData = Encoding.UTF8.GetBytes(postData.ToString());  // 改用UTF8编码
            // 更完善的请求写入
            using (var stream = request.GetRequestStream())
            {
                stream.Write(byteData, 0, byteData.Length);
            }
    //        // 更完善的请求写入
    //        using (var stream = request.GetRequestStream())
    //        {
    //            stream.Write(byteData, 0, byteData.Length);
    //        }
            // 处理HTTP错误状态码
            using (var response = request.GetResponse() as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new WebException($"服务器返回错误状态码: {(int)response.StatusCode} {response.StatusDescription}");
                }
    //        // 处理HTTP错误状态码
    //        using (var response = request.GetResponse() as HttpWebResponse)
    //        {
    //            if (response.StatusCode != HttpStatusCode.OK)
    //            {
    //                throw new WebException($"服务器返回错误状态码: {(int)response.StatusCode} {response.StatusDescription}");
    //            }
                using (var stream = response.GetResponseStream())
                using (var reader = new StreamReader(stream, Encoding.UTF8))
                {
                    return reader.ReadToEnd();
                }
            }
        }
        catch (WebException ex) when (ex.Response is HttpWebResponse response)
        {
            // 记录详细错误信息
            var errorStream = response.GetResponseStream();
            using (var reader = new StreamReader(errorStream))
            {
                string errorDetails = reader.ReadToEnd();
                throw new Exception($"请求失败 [Status: {response.StatusCode}]: {errorDetails}", ex);
            }
        }
        catch (Exception ex)
        {
            throw new Exception($"请求异常: {ex.Message}", ex);
        }
    }
    //            using (var stream = response.GetResponseStream())
    //            using (var reader = new StreamReader(stream, Encoding.UTF8))
    //            {
    //                return reader.ReadToEnd();
    //            }
    //        }
    //    }
    //    catch (WebException ex) when (ex.Response is HttpWebResponse response)
    //    {
    //        // 记录详细错误信息
    //        var errorStream = response.GetResponseStream();
    //        using (var reader = new StreamReader(errorStream))
    //        {
    //            string errorDetails = reader.ReadToEnd();
    //            throw new Exception($"请求失败 [Status: {response.StatusCode}]: {errorDetails}", ex);
    //        }
    //    }
    //    catch (Exception ex)
    //    {
    //        throw new Exception($"请求异常: {ex.Message}", ex);
    //    }
    //}
}