C# Post 模拟表单提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | /// <summary> /// 向指定的URL地址发起一个POST请求。 /// </summary> /// <param name="url">要请求的URL地址</param> /// <param name="keyvalues">要上传的数据项</param> /// <returns>服务器的返回结果</returns> public static string FormdataPost( string url, Dictionary< string , string > keyvalues, string Authorization) { System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; if ( string .IsNullOrEmpty(url)) throw new ArgumentNullException( "url" ); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST" ; request.KeepAlive = true ; request.Headers.Add( "Authorization" , Authorization); //token string boundary = "---------------------------" + Guid.NewGuid().ToString( "N" ); byte [] boundaryBytes = Encoding.ASCII.GetBytes( "\r\n--" + boundary + "\r\n" ); request.ContentType = "multipart/form-data; boundary=" + boundary; Stream stream = request.GetRequestStream(); byte [] beginBoundaryBytes = Encoding.UTF8.GetBytes( "--" + boundary + "\r\n" ); byte [] endBoundaryBytes = Encoding.UTF8.GetBytes( "\r\n--" + boundary + "--\r\n" ); //写入参数 if (keyvalues != null ) { string formDataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n" + "{1}\r\n" ; foreach ( string key in keyvalues.Keys) { string formItem = string .Format(formDataTemplate, key, keyvalues[key]); byte [] formItemBytes = Encoding.UTF8.GetBytes(formItem); stream.Write(beginBoundaryBytes, 0, beginBoundaryBytes.Length); // 1.1 写入FormData项的开始边界符 stream.Write(formItemBytes, 0, formItemBytes.Length); // 1.2 将键值对写入FormData项中 } } boundaryBytes = Encoding.ASCII.GetBytes( "\r\n--" + boundary + "--\r\n" ); stream.Write(boundaryBytes, 0, boundaryBytes.Length); stream.Close(); using (WebResponse response = request.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { return reader.ReadToEnd(); } } } |
可以用
原帖地址:https://blog.csdn.net/u012925792/article/details/131909693
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了