|
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Collections.Specialized;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Web;
|
|
|
|
|
|
|
|
|
|
namespace Admin.Core.Serilog.Es
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取参数帮助类
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class ParamsHelper
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取参数值
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="context"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static string GetParams(HttpContext context)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
NameValueCollection form = HttpUtility.ParseQueryString(context.Request.QueryString.ToString());
|
|
|
|
|
HttpRequest request = context.Request;
|
|
|
|
|
|
|
|
|
|
string data = string.Empty;
|
|
|
|
|
switch (request.Method)
|
|
|
|
|
{
|
|
|
|
|
case "POST":
|
|
|
|
|
|
|
|
|
|
request.Body.Position = 0;
|
|
|
|
|
using (var ms = new MemoryStream())
|
|
|
|
|
{
|
|
|
|
|
request.Body.CopyTo(ms);
|
|
|
|
|
var b = ms.ToArray();
|
|
|
|
|
data = Encoding.UTF8.GetString(b); //把body赋值给bodyStr
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "GET":
|
|
|
|
|
//第一步:取出所有get参数
|
|
|
|
|
IDictionary<string, string> parameters = new Dictionary<string, string>();
|
|
|
|
|
for (int f = 0; f < form.Count; f++)
|
|
|
|
|
{
|
|
|
|
|
string key = form.Keys[f];
|
|
|
|
|
parameters.Add(key, form[key]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 第二步:把字典按Key的字母顺序排序
|
|
|
|
|
IDictionary<string, string> sortedParams = new SortedDictionary<string, string>(parameters);
|
|
|
|
|
IEnumerator<KeyValuePair<string, string>> dem = sortedParams.GetEnumerator();
|
|
|
|
|
|
|
|
|
|
// 第三步:把所有参数名和参数值串在一起
|
|
|
|
|
StringBuilder query = new StringBuilder();
|
|
|
|
|
while (dem.MoveNext())
|
|
|
|
|
{
|
|
|
|
|
string key = dem.Current.Key;
|
|
|
|
|
string value = dem.Current.Value;
|
|
|
|
|
if (!string.IsNullOrEmpty(key))
|
|
|
|
|
{
|
|
|
|
|
query.Append(key).Append("=").Append(value).Append("&");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
data = query.ToString().TrimEnd('&');
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
data = string.Empty;
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return string.Empty;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|