private T ProcessRequest <T>(HadoukenSettings settings, string method, params object[] parameters) { var baseUrl = HttpRequestBuilder.BuildBaseUrl(settings.UseSsl, settings.Host, settings.Port, "api"); var requestBuilder = new JsonRpcRequestBuilder(baseUrl, method, parameters); requestBuilder.LogResponseContent = true; requestBuilder.NetworkCredential = new NetworkCredential(settings.Username, settings.Password); requestBuilder.Headers.Add("Accept-Encoding", "gzip,deflate"); var httpRequest = requestBuilder.Build(); HttpResponse response; try { response = _httpClient.Execute(httpRequest); } catch (HttpException ex) { throw new DownloadClientException("Unable to connect to Hadouken, please check your settings", ex); } catch (WebException ex) { throw new DownloadClientUnavailableException("Unable to connect to Hadouken, please check your settings", ex); } var result = Json.Deserialize <JsonRpcResponse <T> >(response.Content); if (result.Error != null) { throw new DownloadClientException("Error response received from Hadouken: {0}", result.Error.ToString()); } return(result.Result); }
private IEnumerable <IndexerRequest> GetPagedRequests(BroadcastheNetTorrentQuery parameters, int results, int offset) { var builder = new JsonRpcRequestBuilder(Settings.BaseUrl) .Call("getTorrents", Settings.ApiKey, parameters, results, offset); builder.SuppressHttpError = true; yield return(new IndexerRequest(builder.Build())); }
private IEnumerable <IndexerRequest> GetPagedRequests(int maxPages, BroadcastheNetTorrentQuery parameters) { var builder = new JsonRpcRequestBuilder(Settings.BaseUrl) .Call("getTorrents", Settings.ApiKey, parameters, PageSize, 0); builder.SuppressHttpError = true; for (var page = 0; page < maxPages; page++) { builder.JsonParameters[3] = page * PageSize; yield return(new IndexerRequest(builder.Build())); } }
private IEnumerable <IndexerRequest> GetPagedRequests(int maxPages, BroadcastheNetTorrentQuery parameters) { if (parameters == null) { parameters = new BroadcastheNetTorrentQuery(); } var builder = new JsonRpcRequestBuilder(Settings.BaseUrl, "getTorrents", new object[] { Settings.ApiKey, parameters, PageSize, 0 }); builder.SupressHttpError = true; for (var page = 0; page < maxPages; page++) { builder.Parameters[3] = page * PageSize; yield return(new IndexerRequest(builder.Build(""))); } }
private T ProcessRequest <T>(NzbgetSettings settings, string method, params object[] parameters) { var baseUrl = HttpRequestBuilder.BuildBaseUrl(settings.UseSsl, settings.Host, settings.Port, "jsonrpc"); var requestBuilder = new JsonRpcRequestBuilder(baseUrl, method, parameters); requestBuilder.LogResponseContent = true; requestBuilder.NetworkCredential = new NetworkCredential(settings.Username, settings.Password); var httpRequest = requestBuilder.Build(); HttpResponse response; try { response = _httpClient.Execute(httpRequest); } catch (HttpException ex) { if (ex.Response.StatusCode == HttpStatusCode.Unauthorized) { throw new DownloadClientAuthenticationException("Authentication failed for NzbGet, please check your settings", ex); } throw new DownloadClientException("Unable to connect to NzbGet. " + ex.Message, ex); } catch (WebException ex) { throw new DownloadClientUnavailableException("Unable to connect to NzbGet. " + ex.Message, ex); } var result = Json.Deserialize <JsonRpcResponse <T> >(response.Content); if (result.Error != null) { throw new DownloadClientException("Error response received from nzbget: {0}", result.Error.ToString()); } return(result.Result); }
private string ProcessRequest(XbmcSettings settings, string method, params object[] parameters) { var url = string.Format(@"http://{0}/jsonrpc", settings.Address); var requestBuilder = new JsonRpcRequestBuilder(url, method, parameters); requestBuilder.LogResponseContent = true; var request = requestBuilder.Build(); if (!settings.Username.IsNullOrWhiteSpace()) { request.AddBasicAuthentication(settings.Username, settings.Password); } var response = _httpClient.Execute(request); _logger.Trace("Response: {0}", response.Content); CheckForError(response); return(response.Content); }
private string ProcessRequest(XbmcSettings settings, string method, params object[] parameters) { var url = HttpRequestBuilder.BuildBaseUrl(settings.UseSsl, settings.Host, settings.Port, "jsonrpc"); var requestBuilder = new JsonRpcRequestBuilder(url, method, parameters); requestBuilder.LogResponseContent = true; var request = requestBuilder.Build(); if (!settings.Username.IsNullOrWhiteSpace()) { request.Credentials = new BasicNetworkCredential(settings.Username, settings.Password); } var response = _httpClient.Execute(request); _logger.Trace("Response: {0}", response.Content); CheckForError(response); return(response.Content); }