62,046
社区成员
发帖
与我相关
我的任务
分享
#region 将文件转成二进制
byte[] fileContentByte = new byte[1024]; // 文件内容二进制
string filePath = "图片路径..确保能拿到";
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
fileContentByte = new byte[fs.Length]; // 二进制文件
fs.Read(fileContentByte, 0, Convert.ToInt32(fs.Length));
fs.Close();
#endregion
string imgname = "商户协议1";
#region 定义请求体中的内容 并转成二进制
string boundary = "WebKisf2242undary3JNFl4OsfUY7123B";
string Enter = "\r\n";
string docId ="------" + boundary + Enter
+ "Content-Disposition: form-data; name=\"docId\"" + Enter + Enter
+ ""; //感觉就是这个值有问题,当值是 "" 的时候返回 资料导入失败,
//当这个值是 " " 的时候返回资料已经存在,
//只要这个值不是 "" ,都返回资料已经存在,
string docTypes = Enter + "------" + boundary + Enter
+ "Content-Disposition: form-data; name=\"docType\"" + Enter + Enter
+ "" + docType + "";
string docChildTypes =Enter+ "------" + boundary + Enter
+ "Content-Disposition: form-data: name=\"docChildType\"" + Enter + Enter
+ "" + docChildType + "";
string fileContentStr = Enter + "------" + boundary + Enter
+ "Content-Disposition: form-data; name=\"file\"; filename=\"" + imgname + "\"" + Enter
+ "Content-Type: image/jpeg" + Enter + Enter ;
string merInIds = Enter + "------" + boundary + Enter
+ "Content-Disposition: form-data; name=\"merInId\"" + Enter + Enter
+ "" + merInId + "";
string weib = Enter + "------" + boundary + "--" + Enter;
var docChildTypesStrByte = Encoding.UTF8.GetBytes(docChildTypes);
var docIdStrByte = Encoding.UTF8.GetBytes(docId);
var docTypeStrByte = Encoding.UTF8.GetBytes(docTypes);
var merInIdsStrByte = Encoding.UTF8.GetBytes(merInIds);
var fileContentStrByte = Encoding.UTF8.GetBytes(fileContentStr);
var weibStrByte = Encoding.UTF8.GetBytes(weib);
#endregion
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "multipart/form-data;boundary=----" + boundary;
request.KeepAlive = true;
request.CookieContainer = ZhCook(url, cookmain);
Stream myRequestStream = request.GetRequestStream();//定义请求流
#region 将各个二进制 安顺序写入请求流 modelIdStr -> (fileContentStr + fileContent) -> uodateTimeStr -> encryptStr
myRequestStream.Write(docIdStrByte, 0, docIdStrByte.Length);
myRequestStream.Write(docTypeStrByte, 0, docTypeStrByte.Length);
myRequestStream.Write(docChildTypesStrByte, 0, docChildTypesStrByte.Length);
myRequestStream.Write(fileContentStrByte, 0, fileContentStrByte.Length);
myRequestStream.Write(fileContentByte, 0, fileContentByte.Length);
myRequestStream.Write(merInIdsStrByte, 0, merInIdsStrByte.Length);
myRequestStream.Write(weibStrByte, 0, weibStrByte.Length);
#endregion
HttpWebResponse response = (HttpWebResponse)request.GetResponse();//发送
Stream myResponseStream = response.GetResponseStream();//获取返回值
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();