实现http文件下载和上传

来源:互联网 发布:知鱼之乐的寓意 编辑:程序博客网 时间:2024/06/08 09:37

实现http文件下载

        static void Main(string[] args)        {            string url = "";            string path = "";            // 设置参数            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;            //发送请求并获取相应回应数据            HttpWebResponse response = request.GetResponse() as HttpWebResponse;            //直到request.GetResponse()程序才开始向目标网页发送Post请求            Stream responseStream = response.GetResponseStream();            //创建本地文件写入流            Stream stream = new FileStream(path, FileMode.Create);            byte[] bArr = new byte[1024];            int size = responseStream.Read(bArr, 0, (int)bArr.Length);            while (size > 0)            {                stream.Write(bArr, 0, size);                size = responseStream.Read(bArr, 0, (int)bArr.Length);            }            stream.Close();            responseStream.Close();            Console.Read();        }

次性读取response.GetResponseStream();流的所有内容

 HttpWebRequest request = WebRequest.Create(this.txtContent.Text) as HttpWebRequest;       //发送请求并获取相应回应数据       HttpWebResponse response = request.GetResponse() as HttpWebResponse;       //直到request.GetResponse()程序才开始向目标网页发送Post请求       Stream responseStream = response.GetResponseStream();       StreamReader streamReader = new StreamReader(responseStream);       string content = streamReader.ReadToEnd();       CheckContent(content);       responseStream.Close();

保存一张网络上的图片到本地。

        /// <summary>        /// 下载图片        /// </summary>        /// <param name="picUrl">图片Http地址</param>        /// <param name="savePath">保存路径</param>        /// <param name="timeOut">Request最大请求时间,如果为-1则无限制</param>        /// <returns></returns>        public static bool DownloadPicture(string picUrl, string savePath, int timeOut)        {            //string save = picUrl;            //savePath += save.Substring(save.LastIndexOf("/") + 1);            bool value = false;            WebResponse response = null;            Stream stream = null;            try            {                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(picUrl);                if (timeOut != -1) request.Timeout = timeOut;                response = request.GetResponse();                stream = response.GetResponseStream();                if (!response.ContentType.ToLower().StartsWith("text/"))                    value = SaveBinaryFile(response, savePath);            }            finally            {                if (stream != null) stream.Close();                if (response != null) response.Close();            }            return value;        }        private static bool SaveBinaryFile(WebResponse response, string savePath)        {            bool value = false;            byte[] buffer = new byte[1024];            Stream outStream = null;            Stream inStream = null;            try            {                if (File.Exists(savePath)) File.Delete(savePath);                outStream = System.IO.File.Create(savePath);                inStream = response.GetResponseStream();                int l;                do                {                    l = inStream.Read(buffer, 0, buffer.Length);                    if (l > 0) outStream.Write(buffer, 0, l);                } while (l > 0);                value = true;            }            finally            {                if (outStream != null) outStream.Close();                if (inStream != null) inStream.Close();            }            return value;        }
0 0
原创粉丝点击