Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UriUtil.cs
Go to the documentation of this file.
2
3namespace System.Web.Util;
4
5internal static class UriUtil
6{
7 private static readonly char[] s_queryFragmentSeparators = new char[2] { '?', '#' };
8
9 private static void ExtractQueryAndFragment(string input, out string path, out string queryAndFragment)
10 {
11 int num = input.IndexOfAny(s_queryFragmentSeparators);
12 if (num != -1)
13 {
14 path = input.Substring(0, num);
15 queryAndFragment = input.Substring(num);
16 }
17 else
18 {
19 path = input;
20 queryAndFragment = null;
21 }
22 }
23
24 internal static bool TrySplitUriForPathEncode(string input, [NotNullWhen(true)] out string schemeAndAuthority, [NotNullWhen(true)] out string path, out string queryAndFragment)
25 {
26 ExtractQueryAndFragment(input, out var path2, out queryAndFragment);
27 if (Uri.TryCreate(path2, UriKind.Absolute, out Uri result))
28 {
29 string authority = result.Authority;
30 if (!string.IsNullOrEmpty(authority))
31 {
32 int num = path2.IndexOf(authority, StringComparison.OrdinalIgnoreCase);
33 if (num != -1)
34 {
35 int num2 = num + authority.Length;
36 schemeAndAuthority = path2.Substring(0, num2);
37 path = path2.Substring(num2);
38 return true;
39 }
40 }
41 }
42 schemeAndAuthority = null;
43 path = null;
44 queryAndFragment = null;
45 return false;
46 }
47}
static bool TryCreate([NotNullWhen(true)] string? uriString, UriKind uriKind, [NotNullWhen(true)] out Uri? result)
Definition Uri.cs:3793
static void ExtractQueryAndFragment(string input, out string path, out string queryAndFragment)
Definition UriUtil.cs:9
static readonly char[] s_queryFragmentSeparators
Definition UriUtil.cs:7
static bool TrySplitUriForPathEncode(string input, [NotNullWhen(true)] out string schemeAndAuthority, [NotNullWhen(true)] out string path, out string queryAndFragment)
Definition UriUtil.cs:24
UriKind
Definition UriKind.cs:4