2 Commits

2 changed files with 105 additions and 8 deletions
@@ -1305,7 +1305,7 @@ namespace Lskj.Business.Impl
/// <summary> /// <summary>
/// p_getControlLocation 的旧版本不返回 resultfields。 /// p_getControlLocation 的旧版本不返回 resultfields。
/// 仅当窗体包含 180/181 扩展返回控件时按模块补取,普通窗体不增加查询。 /// 仅当窗体包含 173/174 扩展返回控件时按模块补取,普通窗体不增加查询。
/// </summary> /// </summary>
private static void AppendExtendedReturnResultFields(DataTable table, string menuCode) private static void AppendExtendedReturnResultFields(DataTable table, string menuCode)
{ {
@@ -1321,7 +1321,7 @@ namespace Lskj.Business.Impl
{ {
int fieldType; int fieldType;
if (!int.TryParse(row["fieldTypeId"] + "", out fieldType) || if (!int.TryParse(row["fieldTypeId"] + "", out fieldType) ||
(fieldType != 180 && fieldType != 181)) (fieldType != 173 && fieldType != 174))
{ {
continue; continue;
} }
+103 -6
View File
@@ -12,6 +12,9 @@ namespace Lskj.Util
{ {
public static class HttpHelper public static class HttpHelper
{ {
private const int RequestTimeout = 120000;
private const int Tls12 = 3072;
public enum Encode public enum Encode
{ {
Default = 0, Default = 0,
@@ -28,6 +31,76 @@ namespace Lskj.Util
UserAgent = userAgent; UserAgent = userAgent;
EncodeMode = encode; EncodeMode = encode;
} }
private static void ConfigureTransport()
{
try
{
ServicePointManager.SecurityProtocol |= (SecurityProtocolType)Tls12;
ServicePointManager.Expect100Continue = false;
if (ServicePointManager.DefaultConnectionLimit < 20)
{
ServicePointManager.DefaultConnectionLimit = 20;
}
}
catch
{
}
}
private static void ConfigureRequest(HttpWebRequest request)
{
request.Timeout = RequestTimeout;
request.ReadWriteTimeout = RequestTimeout;
request.KeepAlive = false;
request.ServicePoint.Expect100Continue = false;
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
}
private static string BuildExceptionMessage(Exception ex)
{
StringBuilder builder = new StringBuilder();
builder.Append(ex.Message);
if (ex.InnerException != null)
{
builder.AppendFormat("; Inner={0}", ex.InnerException.Message);
}
return builder.ToString();
}
private static string BuildWebExceptionMessage(WebException ex)
{
StringBuilder builder = new StringBuilder();
builder.Append(BuildExceptionMessage(ex));
builder.AppendFormat("; Status={0}", ex.Status);
HttpWebResponse response = ex.Response as HttpWebResponse;
if (response != null)
{
builder.AppendFormat("; HttpStatus={0} {1}", (int)response.StatusCode, response.StatusDescription);
try
{
Stream responseStream = response.GetResponseStream();
if (responseStream != null)
{
using (StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8))
{
string responseText = streamReader.ReadToEnd();
if (!string.IsNullOrEmpty(responseText))
{
builder.AppendFormat("; Response={0}", responseText);
}
}
}
}
catch
{
}
}
return builder.ToString();
}
/// <summary> /// <summary>
/// post数据到指定的网址,获取cookie数据,和返回页 /// post数据到指定的网址,获取cookie数据,和返回页
/// </summary> /// </summary>
@@ -37,7 +110,9 @@ namespace Lskj.Util
try try
{ {
HttpWebRequest httpWebRequest; HttpWebRequest httpWebRequest;
ConfigureTransport();
httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
ConfigureRequest(httpWebRequest);
httpWebRequest.ContentType = ContentType; httpWebRequest.ContentType = ContentType;
httpWebRequest.Accept = Accept; httpWebRequest.Accept = Accept;
@@ -105,10 +180,16 @@ namespace Lskj.Util
return httpWebResponse; return httpWebResponse;
} }
catch (WebException ex)
{
Console.WriteLine(ex.ToString());
result = BuildWebExceptionMessage(ex);
return httpWebResponse;
}
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine(ex.Message); Console.WriteLine(ex.ToString());
result = ex.Message; result = BuildExceptionMessage(ex);
return httpWebResponse; return httpWebResponse;
} }
} }
@@ -134,7 +215,9 @@ namespace Lskj.Util
} }
} }
HttpWebRequest httpWebRequest; HttpWebRequest httpWebRequest;
ConfigureTransport();
httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(builder.ToString()); httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(builder.ToString());
ConfigureRequest(httpWebRequest);
httpWebRequest.ContentType = ContentType; httpWebRequest.ContentType = ContentType;
//httpWebRequest.Referer = url; //httpWebRequest.Referer = url;
httpWebRequest.Accept = Accept; httpWebRequest.Accept = Accept;
@@ -163,10 +246,16 @@ namespace Lskj.Util
return httpWebResponse; return httpWebResponse;
} }
catch (WebException ex)
{
Console.WriteLine(ex.ToString());
result = BuildWebExceptionMessage(ex);
return httpWebResponse;
}
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine(ex.Message); Console.WriteLine(ex.ToString());
result = ex.Message; result = BuildExceptionMessage(ex);
return httpWebResponse; return httpWebResponse;
} }
} }
@@ -186,7 +275,9 @@ namespace Lskj.Util
{ {
string boundary = "----WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x"); string boundary = "----WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x");
ConfigureTransport();
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
ConfigureRequest(httpWebRequest);
httpWebRequest.Method = "POST"; httpWebRequest.Method = "POST";
httpWebRequest.Accept = Accept; httpWebRequest.Accept = Accept;
httpWebRequest.UserAgent = UserAgent; httpWebRequest.UserAgent = UserAgent;
@@ -231,10 +322,16 @@ namespace Lskj.Util
return httpWebResponse; return httpWebResponse;
} }
catch (WebException ex)
{
Console.WriteLine(ex.ToString());
result = BuildWebExceptionMessage(ex);
return httpWebResponse;
}
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine(ex.Message); Console.WriteLine(ex.ToString());
result = ex.Message; result = BuildExceptionMessage(ex);
return httpWebResponse; return httpWebResponse;
} }
} }