zoukankan      html  css  js  c++  java
  • C# 后台POST提交方式

    1、第一种方式:用最新框架,但是针对IIS服务器的操作系统有关系,非R2的收不到数据;

    using (var reqConts = new MultipartFormDataContent())
    {
        for (int i = 0; i < colletion.Count; i++)
        {
            HttpPostedFileBase file = colletion[i];
            string extName = Path.GetExtension(file.FileName);
            string fileName = Guid.NewGuid().ToString() + extName;
            var stream = new StreamReader(file.InputStream).BaseStream;
            var streamCont = new StreamContent(stream);
            streamCont.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");//image/*
            streamCont.Headers.ContentLength = stream.Length;
            reqConts.Add(streamCont, "image_binary" + i, fileName);
        }
        var respone = client.PostAsync(uploadUrl, reqConts).Result.Content.ReadAsStringAsync();
        var res = respone.Result;
        Basics.LogFun.Instance().WriteLog(LogFunType.SystemErrLog, "接收发送请求结果:" + res);
        JsonSerializer serializer = new JsonSerializer();
        using (var jsonReader = new JsonTextReader(new StringReader(respone.Result)))
        {
            Result crrresult = serializer.Deserialize<Result>(jsonReader);
            if (crrresult.Success) {            
                return Content(ReturnMessage(true, "处理成功"));
            }
        }
    }

    2、第二种方式,自己组装,参考代码如下

    private string postFile(HttpFileCollectionBase httpFileCollection, string postUrl)
            {
    
                string encrypt = "f933797503d6e2c36762428a280e0559";
                string boundary = "124559390548109425480397";
                #region 定义请求体中的内容 并转成二进制
                string Enter = "
    ";
    
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
                request.Method = "POST";
                request.ContentType = "multipart/form-data;boundary=--------------------------" + boundary;
                request.Accept = "*/*";
    
                Stream myRequestStream = request.GetRequestStream();//定义请求流
    
                for (int i = 0; i < httpFileCollection.Count; i++)
                {
                    HttpPostedFileBase file = httpFileCollection[i];
                    string extName = Path.GetExtension(file.FileName);
                    string fileName = Guid.NewGuid().ToString() + extName;
    
                    Stream fileStream = file.InputStream;
                    byte[] fileContentByte = new byte[fileStream.Length]; // 文件内容二进制
                    fileStream.Read(fileContentByte, 0, fileContentByte.Length);
                    fileStream.Close();
    
                    string fileContentStr = Enter + "----------------------------" + boundary + Enter
                       + "Content-Type:image/*" + Enter
                       + "Content-Disposition: form-data; name="image_binary" + i.ToString() + ""; filename="" + fileName + """ + Enter + Enter;
    
                    var fileContentStrByte = Encoding.UTF8.GetBytes(fileContentStr);//fileContent一些名称等信息的二进制(不包含文件本身)
    
                    myRequestStream.Write(fileContentStrByte, 0, fileContentStrByte.Length);
                    myRequestStream.Write(fileContentByte, 0, fileContentByte.Length);
                }
                string encryptStr = Enter + "----------------------------" + boundary + Enter
                        + "Content-Disposition: form-data; name="encrypt"" + Enter + Enter
                        + encrypt + Enter + "--" + boundary + "--";
    
                var encryptStrByte = Encoding.UTF8.GetBytes(encryptStr);//encrypt所有字符串二进制
    
                myRequestStream.Write(encryptStrByte, 0, encryptStrByte.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();
    
                return retString;
            }
  • 相关阅读:
    luogu P1833 樱花 看成混合背包
    luogu P1077 摆花 基础记数dp
    luogu P1095 守望者的逃离 经典dp
    Even Subset Sum Problem CodeForces
    Maximum White Subtree CodeForces
    Sleeping Schedule CodeForces
    Bombs CodeForces
    病毒侵袭持续中 HDU
    病毒侵袭 HDU
    Educational Codeforces Round 35 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/xibei666/p/11082939.html
Copyright © 2011-2022 走看看