Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }