private XDocument ExecuteRequest(RTorrentSettings settings, string methodName, params object[] args) { var requestBuilder = new XmlRpcRequestBuilder(settings.UseSsl, settings.Host, settings.Port, settings.UrlBase) { LogResponseContent = true, }; if (!settings.Username.IsNullOrWhiteSpace()) { requestBuilder.NetworkCredential = new NetworkCredential(settings.Username, settings.Password); } var request = requestBuilder.Call(methodName, args).Build(); var response = _httpClient.Execute(request); var doc = XDocument.Parse(response.Content); var faultElement = doc.XPathSelectElement("./methodResponse/fault"); if (faultElement != null) { var fault = new RTorrentFault(faultElement); throw new DownloadClientException($"rTorrent returned error code {fault.FaultCode}: {fault.FaultString}"); } return(doc); }
private XDocument ExecuteRequest(Aria2Settings settings, string methodName, params object[] args) { var requestBuilder = new XmlRpcRequestBuilder(settings.UseSsl, settings.Host, settings.Port, settings.RpcPath) { LogResponseContent = true, }; var request = requestBuilder.Call(methodName, args).Build(); var response = _httpClient.Execute(request); var doc = XDocument.Parse(response.Content); var faultElement = doc.XPathSelectElement("./methodResponse/fault"); if (faultElement != null) { var fault = new Aria2Fault(faultElement); throw new DownloadClientException($"Aria2 returned error code {fault.FaultCode}: {fault.FaultString}"); } return(doc); }