C#工具类(三):C#通过Http请求获取字符串结果和下载文件
作者:陆金龙
发表时间:2015-05-12 01:41
C#实现通过HttpPost请求,返回响应结果的字符串格式;
C#实现通过HttpGet请求,返回响应结果的字符串格式。
C#实现通过HttpGet请求,完成文件下载。
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO; namespace Kinglong.App.Tools { public class HttpRequestHelper { ////// Send Http request by post method /// ///url of ServerPage ///format:parma1=value1¶m2=value2&parm3=value3 ///string format of response public static string HttpPostRequest(string url, string instrParam) { string res = string.Empty; //byte[] dataArray = Encoding.Default.GetBytes(strParam); byte[] dataArray = Encoding.UTF8.GetBytes(strParam);//处理中文乱码 try { //Create Request HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "POST"; request.ContentLength = dataArray.Length; request.ContentType = "application/x-www-form-urlencoded"; //Create InputStream to Send Data Stream requestStream = request.GetRequestStream(); requestStream.Write(dataArray, 0, dataArray.Length); requestStream.Close(); //Create Response HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //Create OutputStream to Get Data Stream responseStream = response.GetResponseStream(); StreamReader stremReader = new StreamReader(responseStream, Encoding.UTF8); res = stremReader.ReadToEnd(); responseStream.Close(); stremReader.Close(); } catch (Exception) { res = null; } return res; } ////// Send Http request by get method /// /// ///public static string HttpGetRequest(string url) { string result = string.Empty; try { //Create Request HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); //Create Response HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //Create OutputStream to Get Data if (response.StatusCode == HttpStatusCode.OK) { Stream responseStream = response.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8); result = streamReader.ReadToEnd(); responseStream.Close(); streamReader.Close(); } } catch (Exception ex) { result = ""; } return result; } /// /// Download File by Http get request /// ///the url of Download page ///the path of File to save ///public static void HttpDownloadFile(string url, string savePath) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.UserAgent = @" Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 "; //如果不设置用户代理,可能出现文件下载不成功的情况 WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); if (!response.ContentType.ToLower().StartsWith("text/")) { byte[] buffer = new byte[1024]; Stream outStream = System.IO.File.Create(savePath); Stream inStream = response.GetResponseStream(); int count; do { count = inStream.Read(buffer, 0, buffer.Length); if (count > 0) outStream.Write(buffer, 0, count); } while (count > 0); outStream.Close(); inStream.Close(); } } } }