/// <summary> /// Retreive routing info for the supplied topic. /// </summary> /// <param name="topic">The topic for which routing is being retreived</param> /// <returns>RoutingInfo or null</returns> public RoutingInfo RetrieveRoutingInfo(string topic) { Log.DebugFormat("Getting routing info for topic {0}", topic); // the routing that we'll return RoutingInfo routing = null; // take the template expression provided by the user and create // the complete URL of the GTS string urlString = string.Format(_urlExpression, topic); // log the url for debugging purposes Log.DebugFormat("Calling GTS with url {0}", urlString); try { // use the web request factory to create a web request WebRequest request = _webRequestFactory.CreateRequest(urlString); // get some response to the request using (Stream responseStream = request.GetResponse().GetResponseStream()) { routing = _serializer.Deserialize(responseStream); } } catch (Exception ex) { Log.Error("Failed to get RoutingInfo from the GTS.", ex); } return(routing); }
private IWebRequest CreateRequest(string apiEndpoint, string method = "GET") { var req = _webFactory.CreateRequest("http://ci.appveyor.com/api/", apiEndpoint, method); req.ContentType = "application/json"; req.AddHeader("Authorization", "Bearer " + _apiToken); return(req); }
private IWebRequest CreateRequest(string apiRoot, string apiEndpoint, string method = "GET") { var req = _webFactory.CreateRequest(apiRoot, apiEndpoint, method); req.ContentType = "application/xml"; req.Accept = "application/json"; req.AddHeader("Authorization", "Basic " + _webio.GetHttpBasicAuthToken(_username, _password)); return(req); }
public WebRequest GetWebRequest(DownloadFileInfo file) { if (file == null) { throw new ArgumentNullException("file"); } WebRequest webRequest = m_WebRequestFactory.CreateRequest(file.Uri); webRequest.Timeout = 30000; SetCredentials(file, webRequest); return(webRequest); }
public IMutableWebRequest Build() { var proxyRequest = _webRequestFactory.CreateRequest(_request.RawUrl); // Set property headers proxyRequest.Method = _request.Method; proxyRequest.ProtocolVersion = _request.ProtocolVersion; proxyRequest.Accept = String.Join(";", _request.AcceptTypes); proxyRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; proxyRequest.ContentLength = _request.ContentLength; proxyRequest.ContentType = _request.ContentType; proxyRequest.Host = _request.Host; proxyRequest.KeepAlive = _request.KeepAlive; proxyRequest.UserAgent = _request.UserAgent; // Set property headers from headers if (_request.Headers.ContainsKey("Connection")) { proxyRequest.Connection = _request.Headers["Connection"]; } if (_request.Headers.ContainsKey("Date")) { DateTime date; if (DateTime.TryParse(_request.Headers["Date"], out date)) { proxyRequest.Date = date; } } if (_request.Headers.ContainsKey("Expect")) { proxyRequest.Expect = _request.Headers["Expect"]; } if (_request.Headers.ContainsKey("If-Modified-Since")) { DateTime ifModifiedSince; if (DateTime.TryParse(_request.Headers["If-Modified-Since"], out ifModifiedSince)) { proxyRequest.IfModifiedSince = ifModifiedSince; } } if (_request.Headers.ContainsKey("Referer")) { proxyRequest.Referer = _request.Headers["Referer"]; } // Set cookies foreach (var cookie in _request.Cookies) { if (String.IsNullOrWhiteSpace(cookie.Domain)) { cookie.Domain = _request.Host; } proxyRequest.Cookies.Add(cookie); } // Set other headers foreach (var header in _request.Headers) { if (header.Key.StartsWith("Proxy-")) { continue; // Ignore proxy headers } if (PropertyHeaders.Contains(header.Key)) { continue; // Ignore headers set in properties. } proxyRequest.Headers.Add(header.Key, header.Value); } if (_request.HasEntityBody) { // Copy over request stream var proxyStream = proxyRequest.GetStream(); var requestStream = _request.GetStream(); requestStream.CopyTo(proxyStream); } return(proxyRequest); }