
8 changed files with 162 additions and 37 deletions
-
2Apewer.Run/Apewer.Run.csproj
-
2Apewer.Run/ApiClient.cs
-
2Apewer.Run/Methods.cs
-
81Apewer.Run/Web.cs
-
2Apewer/Apewer.csproj
-
23Apewer/NetworkUtility.cs
-
84Apewer/Web/WebUtility.cs
-
3Apewer/_ChangeLog.md
@ -0,0 +1,81 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Apewer.Run |
|||
{ |
|||
|
|||
public class Web |
|||
{ |
|||
|
|||
public Web() |
|||
{ |
|||
// GetParameter(Json.Parse("{\"status\":2,\"after\":0,\"before\":0}"), "status");
|
|||
} |
|||
|
|||
string GetParameter(Json data, params string[] names) |
|||
{ |
|||
if (names == null || names.Length < 1) return null; |
|||
|
|||
var sameNames = new List<string>(); |
|||
var lowerNames = new List<string>(); |
|||
foreach (var name in names) |
|||
{ |
|||
if (string.IsNullOrEmpty(name)) continue; |
|||
sameNames.Add(name); |
|||
|
|||
var lower = TextUtility.ToLower(name); |
|||
if (string.IsNullOrEmpty(lower)) continue; |
|||
lowerNames.Add(lower); |
|||
} |
|||
|
|||
// POST 优先。
|
|||
if (data != null && data.IsObject) |
|||
{ |
|||
var properties = data.GetProperties(); |
|||
if (properties != null) |
|||
{ |
|||
// Json 区分大小写,先全字匹配。
|
|||
foreach (var property in properties) |
|||
{ |
|||
if (!property.IsProperty) continue; |
|||
if (sameNames.Contains(property.Name) && property.Value != null) |
|||
{ |
|||
var value = property.Value; |
|||
if (value == null) continue; |
|||
var text = value.ToString(); |
|||
if (!string.IsNullOrEmpty(text)) return text; |
|||
} |
|||
} |
|||
|
|||
// 以小写模糊匹配。
|
|||
foreach (var property in properties) |
|||
{ |
|||
if (!property.IsProperty) continue; |
|||
var lowerName = TextUtility.ToLower(property.Name); |
|||
if (lowerNames.Contains(lowerName) && property.Value != null) |
|||
{ |
|||
var value = property.Value; |
|||
if (value == null) continue; |
|||
var text = value.ToString(); |
|||
if (!string.IsNullOrEmpty(text)) return text; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
#if NETFX
|
|||
// NETFX 最后搜索 GET 参数。
|
|||
if (request.Url != null) |
|||
{ |
|||
var value = GetParameter(request.Url, names); |
|||
if (!string.IsNullOrEmpty(value)) return value; |
|||
} |
|||
#endif
|
|||
|
|||
return null; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue