在.NET 中模拟提交Post数据
2004-03-11 10:09
555 查看
using System; using System.Net; using System.IO; using System.Text; using System.Web; class ClientPOST { public static void Main(string[] args) { if (args.Length < 1) { showusage(); } else { if (args.Length < 2 ) { getPage(args[0], "s1=foods2=bart(&S)"); } else { getPage(args[0], args[1]); } } Console.WriteLine(); Console.WriteLine("按任意键继续..."); Console.ReadLine(); return; } public static void showusage() { Console.WriteLine("尝试发送 (POST) 到 URL 中"); Console.WriteLine(); Console.WriteLine("用法::"); Console.WriteLine("ClientPOST URL [postdata]"); Console.WriteLine(); Console.WriteLine("示例::"); Console.WriteLine("ClientPOST http://www.microsoft.com s1=food&s2=bart"); } public static void getPage(String url, String payload) { WebResponse result = null; try { WebRequest req = WebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; StringBuilder UrlEncoded = new StringBuilder(); Char[] reserved = {'?', '=', '&'}; byte[] SomeBytes = null; if (payload != null) { int i=0, j; while(i<payload.Length){ j=payload.IndexOfAny(reserved, i); if (j==-1){ UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length-i))); break; } UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j-i))); UrlEncoded.Append(payload.Substring(j,1)); i = j+1; } SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString()); req.ContentLength = SomeBytes.Length; Stream newStream = req.GetRequestStream(); newStream.Write(SomeBytes, 0, SomeBytes.Length); newStream.Close(); } else { req.ContentLength = 0; } result = req.GetResponse(); Stream ReceiveStream = result.GetResponseStream(); Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); StreamReader sr = new StreamReader( ReceiveStream, encode ); Console.WriteLine("/r/n已接收到响应流"); Char[] read = new Char[256]; int count = sr.Read( read, 0, 256 ); Console.WriteLine("HTML.../r/n"); while (count > 0) { String str = new String(read, 0, count); Console.Write(str); count = sr.Read(read, 0, 256); } Console.WriteLine(""); } catch(Exception e) { Console.WriteLine( e.ToString()); Console.WriteLine("/r/n找不到请求 URI,或者它的格式不正确"); } finally { if ( result != null ) { result.Close(); } } } }
相关文章推荐
- 在.NET 中模拟提交Post数据
- 在.NET 中模拟提交Post数据
- .NET POST提交数据和接收数据 用url传参方式
- Fiddler进行模拟Post提交json数据,总为null解决方式
- 使用java ssm框架后台模拟post上传文件并提交表单数据
- 黄聪:C#模拟网站页面POST数据提交表单(一)--WebClient (转)
- 利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据
- php小代码----curl模拟登录及登录后并通过多线程进行重复post数据提交
- php模拟post提交数据的方法
- 使用php模拟post提交数据
- 利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据
- php模拟post方式提交数据
- C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)
- (转)C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)
- 使用PHP模拟post提交数据
- Fiddler进行模拟Post提交json数据,总为null解决方式
- PHP模拟post提交数据方法汇总
- 黄聪:C#模拟网站页面POST数据提交表单(二)--HttpWebRequest以及HttpWebResponse (转)
- php中模拟POST提交数据两种方法
- php中用socket模拟http中post或者get提交数据的示例代码