diff --git a/CryptoExchange.Net/ExtensionMethods.cs b/CryptoExchange.Net/ExtensionMethods.cs
index 1108d2f..f5600e1 100644
--- a/CryptoExchange.Net/ExtensionMethods.cs
+++ b/CryptoExchange.Net/ExtensionMethods.cs
@@ -1,12 +1,10 @@
using System;
-using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
-using System.Text.RegularExpressions;
using System.Web;
using CryptoExchange.Net.Logging;
using CryptoExchange.Net.Objects;
@@ -492,23 +490,6 @@ namespace CryptoExchange.Net
return ub.Uri;
}
-
- ///
- /// checks whether schema is provided
- ///
- ///
- ///
- public static bool IsSchemaProvided(this ApiProxy proxy)
- {
- var url = $"{proxy.Host}:{proxy.Port}";
- var r = new Regex(@"^(?\w+)://[^/]+?(?:\d+)?",
- RegexOptions.None, TimeSpan.FromMilliseconds(150));
- var match = r.Match(url);
- if (!match.Success) return false;
- var proto = match.Result("${proto}");
- return !string.IsNullOrEmpty(proto);
- }
-
}
}
diff --git a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs
index f0229f7..9371231 100644
--- a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs
+++ b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs
@@ -212,18 +212,15 @@ namespace CryptoExchange.Net.Sockets
///
public virtual void SetProxy(ApiProxy proxy)
{
- if (!proxy.IsSchemaProvided())
- {
- _socket.Options.Proxy = new WebProxy(proxy.Host, proxy.Port);
- }
- else
- {
- _socket.Options.Proxy = new WebProxy
+ Uri.TryCreate($"{proxy.Host}:{proxy.Port}", UriKind.Absolute, out var uri);
+ _socket.Options.Proxy = uri?.Scheme == null
+ ? _socket.Options.Proxy = new WebProxy(proxy.Host, proxy.Port)
+ : _socket.Options.Proxy = new WebProxy
{
- Address = new Uri($"{proxy.Host}:{proxy.Port}"),
- Credentials = proxy.Password == null ? null : new NetworkCredential(proxy.Login, proxy.Password)
+ Address = uri
};
- }
+ if (proxy.Login != null)
+ _socket.Options.Proxy.Credentials = new NetworkCredential(proxy.Login, proxy.Password);
}
///