public static string UploadFile(string Url, string path) { // 设置参数 try { 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(); Log.Info("upload ret: " + content); return(content); } catch (Exception e) { OfflineProcessor.AddEvent("fileupload", Url, path, DateTime.Now.ToString("yyyyMMddHHmmss")); Log.Error(e.Message); return(""); } }
public static string doPost(string action, string data) { string data0 = "action=" + action + "&classid=" + Global.getClassID() + "&courseid=" + Global.getCourseID() + "&teacherid=" + Global.getTeacherID(); if (data.IndexOf("lesson.get") < 0) { data0 += "&lessonid=" + Global.getLessonID(); } if (data.IndexOf("schoolid=") < 0) { data0 += "&schoolid=" + Global.getSchoolID(); } data = data0 + "&" + data; string tm = DateTime.Now.ToString("yyyyMMddHHmmss"); string src = tm + "_" + Global.getSchoolID() + "_" + Global.getClassID() + "_" + KEY; string sign = GetMD5(src); string url = Global.url_assistant + "s=" + Global.getSchoolID() + "&r=0&classid=" + Global.getClassID() + "&t=" + tm + "&c=" + sign; string ret = ""; string keyTemp = sign.Substring(4, 16); string dataEncrypt = AesEncrypt(data, keyTemp);//跟java的substring不一样 string retCrypt = HTTPReq.HttpPost(url, dataEncrypt); ret = AesDecrypt(retCrypt, keyTemp); if (ret.Length == 0) { OfflineProcessor.AddEvent(action, url, data, tm); } Log.Info("doPost: data=" + data); Log.Debug("ret=" + ret); if (data.IndexOf("lesson.get") > 0) { handleGetLessonResponse(ret); } else if (data.IndexOf("handon") > 0 && Global.getLessonID() == 0) { handleGetLessonResponse(ret); } if (ret == null) { ret = ""; } return(ret); }