private void ExecuteRequest(string url, CapabilitiesType capabilitiesType, ICredentials credentials = null, string token = null)
{
_capabilitiesType = capabilitiesType;
_url = RemoveTrailingSlash(url);
var requestUri = $"{_url}?f=json";
if (!string.IsNullOrEmpty(token))
requestUri = $"{requestUri}&token={token}";
_webRequest = (HttpWebRequest)WebRequest.Create(requestUri);
if (credentials == null)
_webRequest.UseDefaultCredentials = true;
else
_webRequest.Credentials = credentials;
_webRequest.BeginGetResponse(FinishWebRequest, null);
}