Net Core教程

C# Post 使用(multipart/form-data)请求数据

本文主要是介绍C# Post 使用(multipart/form-data)请求数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
 
public static string HttpPostMultipartFormData(string url,  NameValueCollection kVDatas, string method = WebRequestMethods.Http.Post, string encoding= "UTF-8", int timeOut = -1)
            {
                string resultStr = "";
                try
                {
                    string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
                    byte[] boundarybytes = Encoding.GetEncoding(encoding).GetBytes("\r\n--" + boundary + "\r\n");
                    byte[] endbytes = Encoding.GetEncoding(encoding).GetBytes("\r\n--" + boundary + "--\r\n");

                    //1.HttpWebRequest
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.ContentType = "multipart/form-data; boundary=" + boundary;
                    request.Method = method;
                    request.KeepAlive = true;
                    request.Timeout = timeOut;

              
                    using (Stream stream = request.GetRequestStream())
                    {
                        //1.1 key/value
                        string formdataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";
                        if (kVDatas != null)
                        {
                            foreach (string key in kVDatas.Keys)
                            {
                                stream.Write(boundarybytes, 0, boundarybytes.Length);
                                string formitem = string.Format(formdataTemplate, key, kVDatas[key]);
                                byte[] formitembytes = Encoding.GetEncoding(encoding).GetBytes(formitem);
                                stream.Write(formitembytes, 0, formitembytes.Length);
                            }
                        }
                        stream.Write(endbytes, 0, endbytes.Length);
                    }
                    //2.WebResponse
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
                    {
                        using (StreamReader stream = new StreamReader(response.GetResponseStream()))
                        {
                            resultStr = stream.ReadToEnd();
                           
                        }
                    }
                    

                }
                catch (WebException ex)
                {
                    var errorSr = new StreamReader(ex.Response.GetResponseStream());
                    resultStr = errorSr.ReadToEnd();
                }
                return resultStr;
            }

 

这篇关于C# Post 使用(multipart/form-data)请求数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!