《winform通过HttpWebRequest(post方式)上传文件和传递参数》由会员分享,可在线阅读,更多相关《winform通过HttpWebRequest(post方式)上传文件和传递参数(4页珍藏版)》请在金锄头文库上搜索。
1、winform通过HttpWebRequest(post方式)上传文件和传递参数 1 private void button1_Click(object sender, EventArgs e) 2 3 UploadFileHttpRequest(AppDomain.CurrentDomain.BaseDirectory.Trim() + bb.txt); 4 5 private string UploadFileHttpRequest(string fileName) 6 7 string output = string.Empty; 8 MemoryStream postStream =
2、null; 9 BinaryWriter postWriter = null; 10 HttpWebResponse response = null; 11 StreamReader responseStream = null; 12 13 const string CONTENT_BOUNDARY = -ae0cH2cH2GI3Ef1KM7GI3Ij5cH2gL6; 14 const string CONTENT_BOUNDARY_PREFIX = -; 15 16 try 17 18 UriBuilder uriBuilder = new UriBuilder(http:/localhos
3、t:7408/WebT/t.aspx); 19 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uriBuilder.Uri); 20 request.UserAgent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; Maxthon; .NET CLR 1.1.4322; .NET CLR 2.0.50727); 21 request.Timeout = 300000; 22 request.ContentType = multipart/form-dat
4、a; boundary= + CONTENT_BOUNDARY; 23 postStream = new MemoryStream(); 24 postWriter = new BinaryWriter(postStream); 25 /- 参数 26 /paramsetType 27 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BOUNDARY_PREFIX + CONTENT_BOUNDARY + rn + 28 Content-Disposition: form-data; name=paramsetTyp
5、e rnrn); 29 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(2); 30 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(rn); 31 /paramstartTime 32 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BOUNDARY_PREFIX + CONTENT_BOUNDARY + rn + 33 Content-Disposition: form-data; name
6、=paramstartTime rnrn); 34 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(); 35 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(rn); 36 /paramendTime 37 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BOUNDARY_PREFIX + CONTENT_BOUNDARY + rn + 38 Content-Disposition: form
7、-data; name=paramendTime rnrn); 39 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(); 40 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(rn); 41 /paramresourceID 42 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BOUNDARY_PREFIX + CONTENT_BOUNDARY + rn + 43 Content-Dispo
8、sition: form-data; name=paramresourceID rnrn); 44 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(1398130); 45 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(rn); 46 /forwardUrl 47 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BOUNDARY_PREFIX + CONTENT_BOUNDARY + rn +
9、 48 Content-Disposition: form-data; name=forwardUrl rnrn); 49 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(/cs/showBatchToneInfoStart.action); 50 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(rn); 51 /uploadFiles 52 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BO
10、UNDARY_PREFIX + CONTENT_BOUNDARY + rn + 53 Content-Disposition: form-data; name=uploadFiles rnrn); 54 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(fileName); 55 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(rn); 56 byte fileContent = File.ReadAllBytes(fileName); 57 postWriter.Writ
11、e(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BOUNDARY_PREFIX + CONTENT_BOUNDARY + rn + 58 Content-Disposition: form-data; name=FileContent + 59 filename= + Path.GetFileName(fileName) + rnrn); 60 postWriter.Write(fileContent); 61 postWriter.Write(Encoding.GetEncoding(gb2312).GetBytes(rn); 62 postW
12、riter.Write(Encoding.GetEncoding(gb2312).GetBytes(CONTENT_BOUNDARY_PREFIX + CONTENT_BOUNDARY + -); 63 64 request.ContentLength = postStream.Length; 65 request.Method = POST; 66 Stream requestStream = request.GetRequestStream(); 67 postStream.WriteTo(requestStream); 68 response = (HttpWebResponse)request.GetResponse(); 69 70 for (int i = 0; i 0) enc = Encoding.GetEncoding(response.ContentEncoding); 79 80