WebUtil.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / WebUtil.cs / 2 / WebUtil.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
// static utility functions
//  
//--------------------------------------------------------------------- 

namespace System.Data.Services.Client 
{
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.IO; 
#if !ASTORIA_LIGHT // Data.Services http stack
    using System.Net; 
#else 
    using System.Data.Services.Http;
#endif 

    /// web utility functions
    internal static partial class WebUtil
    { 
        /// copy from one stream to another
        /// input stream 
        /// output stream 
        /// reusable buffer
        /// count of copied bytes 
        internal static long CopyStream(Stream input, Stream output, ref byte[] refBuffer)
        {
            Debug.Assert(null != input, "null input stream");
            Debug.Assert(null != output, "null output stream"); 

            long total = 0; 
            byte[] buffer = refBuffer; 
            if (null == buffer)
            { 
                refBuffer = buffer = new byte[1000];
            }

            int count = 0; 
            while (input.CanRead && (0 < (count = input.Read(buffer, 0, buffer.Length))))
            { 
                output.Write(buffer, 0, count); 
                total += count;
            } 

            return total;
        }
 
        /// get response object from possible WebException
        /// exception to probe 
        /// http web respose object from exception 
        internal static void GetHttpWebResponse(InvalidOperationException exception, ref HttpWebResponse response)
        { 
            if (null == response)
            {
                WebException webexception = (exception as WebException);
                if (null != webexception) 
                {
                    response = (HttpWebResponse)webexception.Response; 
                } 
            }
        } 

        /// is this a success status code
        /// status code
        /// true if status is between 200-299 
        internal static bool SuccessStatusCode(HttpStatusCode status)
        { 
            return (200 <= (int)status && (int)status < 300); 
        }
 
        /// 
        /// turn the response object headers into a dictionary
        /// 
        /// response 
        /// dictionary
        internal static Dictionary WrapResponseHeaders(HttpWebResponse response) 
        { 
            Dictionary headers = new Dictionary();
            if (null != response) 
            {
                foreach (string name in response.Headers.AllKeys)
                {
                    headers.Add(name, response.Headers[name]); 
                }
            } 
 
            return headers;
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
// static utility functions
//  
//--------------------------------------------------------------------- 

namespace System.Data.Services.Client 
{
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.IO; 
#if !ASTORIA_LIGHT // Data.Services http stack
    using System.Net; 
#else 
    using System.Data.Services.Http;
#endif 

    /// web utility functions
    internal static partial class WebUtil
    { 
        /// copy from one stream to another
        /// input stream 
        /// output stream 
        /// reusable buffer
        /// count of copied bytes 
        internal static long CopyStream(Stream input, Stream output, ref byte[] refBuffer)
        {
            Debug.Assert(null != input, "null input stream");
            Debug.Assert(null != output, "null output stream"); 

            long total = 0; 
            byte[] buffer = refBuffer; 
            if (null == buffer)
            { 
                refBuffer = buffer = new byte[1000];
            }

            int count = 0; 
            while (input.CanRead && (0 < (count = input.Read(buffer, 0, buffer.Length))))
            { 
                output.Write(buffer, 0, count); 
                total += count;
            } 

            return total;
        }
 
        /// get response object from possible WebException
        /// exception to probe 
        /// http web respose object from exception 
        internal static void GetHttpWebResponse(InvalidOperationException exception, ref HttpWebResponse response)
        { 
            if (null == response)
            {
                WebException webexception = (exception as WebException);
                if (null != webexception) 
                {
                    response = (HttpWebResponse)webexception.Response; 
                } 
            }
        } 

        /// is this a success status code
        /// status code
        /// true if status is between 200-299 
        internal static bool SuccessStatusCode(HttpStatusCode status)
        { 
            return (200 <= (int)status && (int)status < 300); 
        }
 
        /// 
        /// turn the response object headers into a dictionary
        /// 
        /// response 
        /// dictionary
        internal static Dictionary WrapResponseHeaders(HttpWebResponse response) 
        { 
            Dictionary headers = new Dictionary();
            if (null != response) 
            {
                foreach (string name in response.Headers.AllKeys)
                {
                    headers.Add(name, response.Headers[name]); 
                }
            } 
 
            return headers;
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK