zoukankan      html  css  js  c++  java
  • post formdata

     
    //////////////////////////////////////////////////////////////////////////
        var url = "XXX"; 
    
                var cellphone = "xxx";
                var msg = "{"identys":["" + cellphone + ""],"title":通知","msg":"测试一下"}";
                var msgbt = System.Text.Encoding.UTF8.GetBytes(msg);
    
                var msg64 = Convert.ToBase64String(msgbt); 
    
                PostUtils post = new PostUtils();
    
                Dictionary<string, string> formdata = new Dictionary<string, string>();
    
                formdata.Add("queuename", "ydztMsg");
                formdata.Add("msg", msg64);
    
                post.PostFormData(url, formdata, (r, m) => {
    
                    Console.WriteLine($"{r}---{m}");
                });
    
    ////////////////////////////////////////////////////////////////////
    
    
    
     public class PostUtils
        {
    
    
            public PostUtils()
            {
    
            }
    
    
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="url"></param>
            /// <param name="formDatas"></param>
            /// <param name="PostComplete">请求完成</param>
            public void PostFormData(string url,Dictionary<string,string> formDatas, Action<bool,string> PostComplete)
            {
    
                var result = true;
                var msg = "";
                try
                {
                    byte[] buffer = new byte[1024 * 1000];//缓冲区  
    
                    var request = WebRequest.Create(url) as HttpWebRequest;
    
                    request.Method = "POST";
    
                    var boundary = "----" + DateTime.Now.Ticks.ToString("x");
    
                    request.ContentType = "multipart/form-data; boundary=----" + boundary;
    
                    string msgreq = string.Empty;
    
                    foreach (KeyValuePair<string, string> kv in formDatas)
                    {
                        msgreq += $"------{ boundary}
    Content-Disposition:  form-data; name ="{kv.Key}"
    
     {kv.Value} 
    ";
    
                    }
                    msgreq += $"
    ------{ boundary }----";
    
                    var data = Encoding.UTF8.GetBytes(msgreq);
    
                    request.ContentLength = data.Length;
    
                    using (var writer = request.GetRequestStream())
                    {
                        writer.Write(data, 0, data.Length);
                    }  
                    using (var response = request.GetResponse() as HttpWebResponse)
                    {
                        using (var responseStream = response.GetResponseStream())
                        {
                            using (StreamReader reader = new StreamReader(responseStream, Encoding.UTF8))
                            { 
                                msg = reader.ReadToEnd();
                            }
                        }
                    }
                }
                
                catch(Exception e)
                {
                    result = false;
                    msg = e.Message;
                }
    
                finally
                {
                    PostComplete?.Invoke(result, msg);
                }
            }
    
        }
    

     from-data格式太麻烦了。

  • 相关阅读:
    VS Code 快捷键(中英文对照版)
    Linux下SVN提交时强制写日志
    如何搞定SVN目录的cleanup问题和lock问题
    Unity3D中利用Action实现自己的消息管理(订阅/发布)类
    Unity3D热更新之LuaFramework篇[03]--prefab加载和Button事件
    Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板
    Unity3D热更新之LuaFramework篇[01]--从零开始
    Unity UI性能优化技巧
    Unity中雾效的开启
    解决Unity中模型部件的MeshCollider不随动画一起运动的问题
  • 原文地址:https://www.cnblogs.com/Chareree/p/12418530.html
Copyright © 2011-2022 走看看