HttpWebRequest post上传文件
生活随笔
收集整理的這篇文章主要介紹了
HttpWebRequest post上传文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
public static string HttpUploadFile(string url, string path){// 設置參數 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;CookieContainer cookieContainer = new CookieContainer();request.CookieContainer = cookieContainer;request.AllowAutoRedirect = true;request.Method = "POST";string boundary = DateTime.Now.Ticks.ToString("X"); // 隨機分隔線 request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");int pos = path.LastIndexOf("\\");string fileName = path.Substring(pos + 1);//請求頭部信息 StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName));byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);byte[] bArr = new byte[fs.Length];fs.Read(bArr, 0, bArr.Length);fs.Close();Stream postStream = request.GetRequestStream();postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);postStream.Write(bArr, 0, bArr.Length);postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);postStream.Close();//發送請求并獲取相應回應數據 HttpWebResponse response = request.GetResponse() as HttpWebResponse;//直到request.GetResponse()程序才開始向目標網頁發送Post請求 Stream instream = response.GetResponseStream();StreamReader sr = new StreamReader(instream, Encoding.UTF8);//返回結果網頁(html)代碼 string content = sr.ReadToEnd();return content;}
?
轉載于:https://www.cnblogs.com/dragon-L/p/4871611.html
總結
以上是生活随笔為你收集整理的HttpWebRequest post上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么查花旗银行信用卡进度?三种查询方法了
- 下一篇: 2018跨行ATM取款手续费多少?六大商