Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetUriFromString()

static Uri System.Net.Http.HttpEnvironmentProxy.GetUriFromString ( string value)
inlinestaticprivate

Definition at line 35 of file HttpEnvironmentProxy.cs.

36 {
37 if (string.IsNullOrEmpty(value))
38 {
39 return null;
40 }
41 if (value.StartsWith("http://", StringComparison.OrdinalIgnoreCase))
42 {
43 value = value.Substring(7);
44 }
45 string text = null;
46 string text2 = null;
47 ushort result = 80;
48 int num = value.LastIndexOf('@');
49 if (num != -1)
50 {
51 string text3 = value.Substring(0, num);
52 try
53 {
54 text3 = Uri.UnescapeDataString(text3);
55 }
56 catch
57 {
58 }
59 value = value.Substring(num + 1);
60 num = text3.IndexOf(':');
61 if (num == -1)
62 {
63 text = text3;
64 }
65 else
66 {
67 text = text3.Substring(0, num);
68 text2 = text3.Substring(num + 1);
69 }
70 }
71 int num2 = value.IndexOf(']');
72 num = value.LastIndexOf(':');
73 string host;
74 if (num == -1 || (num2 != -1 && num < num2))
75 {
76 host = value;
77 }
78 else
79 {
80 host = value.Substring(0, num);
81 int i;
82 for (i = num + 1; i < value.Length && char.IsDigit(value[i]); i++)
83 {
84 }
85 if (!ushort.TryParse(value.AsSpan(num + 1, i - num - 1), out result))
86 {
87 return null;
88 }
89 }
90 try
91 {
92 UriBuilder uriBuilder = new UriBuilder("http", host, result);
93 if (text != null)
94 {
95 uriBuilder.UserName = Uri.EscapeDataString(text);
96 }
97 if (text2 != null)
98 {
99 uriBuilder.Password = Uri.EscapeDataString(text2);
100 }
101 return uriBuilder.Uri;
102 }
103 catch
104 {
105 }
106 return null;
107 }

References System.Uri.EscapeDataString(), System.text, System.Uri.UnescapeDataString(), System.UriBuilder.Uri, and System.value.

Referenced by System.Net.Http.HttpEnvironmentProxy.TryCreate().