Esempio n. 1
0
        public static string GetUrlContent(string requestedURL)
        {
            string urlContent = "";

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestedURL);
                request.AllowAutoRedirect = false;

                string location             = request.GetResponse().Headers["Location"];
                string cookieSessionToken   = ExtractSessionCookieValue(request);
                string cookieTempTokenValue = ExtractTempTokenCookieValue(request);

                HttpWebRequest redirectRequest = (HttpWebRequest)WebRequest.Create(location);

                SetAuthentication(redirectRequest, AuthRequestParameters.empty());

                redirectRequest.Headers.Add(SESSION_TOKEN_COOKIE_KEY, BuildSessionTokenCookieValue(cookieSessionToken) + ";" + BuildTempTokenCookieValue(cookieTempTokenValue));

                HttpWebResponse response = (HttpWebResponse)redirectRequest.GetResponse();

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    Stream       receiveStream = response.GetResponseStream();
                    StreamReader readStream    = null;

                    if (response.CharacterSet == null)
                    {
                        readStream = new StreamReader(receiveStream);
                    }
                    else
                    {
                        readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                    }

                    urlContent = readStream.ReadToEnd();

                    response.Close();
                    readStream.Close();
                }
            }
            catch (WebException e)
            {
                using (var stream = e.Response.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        string errorDetails = reader.ReadToEnd();
                        throw new OssServerException(string.Format("{0} HTTP {1} on URI {2}. Optional details: {3}", e.Message,
                                                                   ((HttpWebResponse)e.Response).Method, e.Response.ResponseUri, errorDetails),
                                                     errorDetails, e);
                    }
            }
            catch (Exception e)
            {
                throw new OssException("Error communicating with oss server. " + e.Message, e);
            }
            return(urlContent);
        }
Esempio n. 2
0
 private static void SetAuthentication(HttpWebRequest request, AuthRequestParameters authRequestParameters)
 {
     if (authRequestParameters.hasSessionToken())
     {
         request.Headers.Add(SESSION_TOKEN_COOKIE_VALUE_KEY, authRequestParameters.getSessionToken());
     }
     else if (authRequestParameters.hasApiKey())
     {
         request.Headers.Add(API_KEY_AUTHENTICATION_BASIC_PREFIX, authRequestParameters.getApiKey());
     }
     else if (authRequestParameters.hasTempToken())
     {
         request.Headers.Add(TEMP_SESSION_TOKEN_COOKIE_VALUE_KEY, authRequestParameters.getTempToken());
     }
     else if (authRequestParameters.hasConnectorsAuth())
     {
         request.Headers.Add(API_KEY_AUTHENTICATION_BASIC_PREFIX, authRequestParameters.getConnectorsAuth());
     }
 }