public virtual Response Invoke(string baseUri, IRequest request, IXmlParser xmlParser, Handler handler, out string sessionId) { HttpWebRequest webRequest = this.CreateWebRequest(baseUri, request); this.setUserAgent(webRequest); HttpInvoker.WriteRequest(webRequest, request); HttpWebResponse httpWebResponse = this.ReadResponse(webRequest, xmlParser, handler); try { string[] values = httpWebResponse.Headers.GetValues("Set-Cookie"); if (null != values) { StringBuilder stringBuilder = new StringBuilder(); foreach (string cookie in values) { stringBuilder.Append(this.ExtractCookiePair(cookie)); stringBuilder.Append("; "); } stringBuilder.Remove(stringBuilder.Length - "; ".Length, "; ".Length); sessionId = stringBuilder.ToString(); } else { sessionId = (string)null; } } finally { httpWebResponse.Close(); } return(new Response(httpWebResponse.StatusCode)); }
private HttpWebRequest SendRequest(string baseUri, IRequest request, string sessionId) { if (null == sessionId) { throw new ArgumentException("'sessionId' must not be null"); } HttpWebRequest webRequest = this.CreateWebRequest(baseUri, request); webRequest.Headers.Add("Cookie", sessionId); this.setUserAgent(webRequest); HttpInvoker.WriteRequest(webRequest, request); return(webRequest); }