public HttpWebResponse PerformRequest(Request request, Dictionary<string, string> additionalHeaders) { if (UrlRewriter != null) { String rewritten = UrlRewriter.RewriteUrl(request.Url); if (!String.IsNullOrEmpty(rewritten)) { request.SetRedirectUrl(rewritten); } } var httpRequest = CreateHttpRequest(request); foreach (KeyValuePair<String, String> head in additionalHeaders) { try { httpRequest.Headers.Add(head.Key, head.Value); } catch (Exception) { continue; } } foreach (KeyValuePair<String, String> head in request.GetHeaders()) { try { httpRequest.Headers.Add(head.Key, head.Value); } catch (Exception) { continue; } } return (HttpWebResponse)httpRequest.GetResponse(); }