在.NET 中模拟提交Post数据

数据

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();
}
}
}
}

时间: 2024-10-31 08:16:12

在.NET 中模拟提交Post数据的相关文章

ext中form提交的数据中文数据乱码

问题描述 ext中form提交的数据中文数据乱码.我有一个程序,如果是添加信息中含有中文就不会乱码,如果是修改信息中含有中文就是乱码.这是怎么回事 解决方案 解决方案二:前台页面用utf-8,后台弄个过滤器也用utf-8就不会有问题了

Oracle中模拟及修复数据块损坏

在Oracle数据库中,我们可能遭遇很多数据损坏的情况,在面对这些情况时如何进行数据恢复是非常重要的.在很多情况下,恢复是极其复杂的,而且需要谨慎,轻率的操作和尝试可能导致数据库的永久损坏. 所以我建议在恢复尝试前应当先进行数据备份. 对于重要的数据库,如果不能确定恢复步骤和操作后果,建议最好先向专业人士进行咨询,以避免不必要的数据损失. 本文通过试验模拟和解决数据块损坏问题,是对一类数据库损坏的恢复探讨 1.插入数据 E:\Oracle\ora92\bin>sqlplus "/ as s

php中模拟POST传递数据的两种方法分享_php技巧

方法1 复制代码 代码如下: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://192.168.1.135/turntable/get_jump.php"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $array); curl_exec($ch); curl_close($ch); 方法2 复制代码 代码如下: $d

PHP CURL模拟POST提交XML数据

 代码如下 复制代码 $url = "http://www.111cn.net/ login"; <!--?xml version="1.0"?-->   $ch = curl_init(); $header[] = "Content-type: text/xml";//定义content-type为xml curl_setopt($ch, CURLOPT_URL, $url); //定义表单提交地址 curl_setopt($ch,

java-关于android模拟提交表单一问

问题描述 关于android模拟提交表单一问 最近在尝试写一个android 模拟表单提交的程式我用firefox 抓取的http提交数据 有几个问题想问下 1.我是用okhttp library, 想问下它是不是会自动存取cookies?2.模拟表单 要不要加入那些request header?3.如果想查看okhttp cookies 应该怎么做 谢谢 解决方案 如果要模拟的话,header应该是要模拟才行的,不过还真没在android上搞过模拟提交表单,你是准备做一个手机注册的吗? 解决方

android post方式提交中文数据到服务器乱码问题

问题描述 android post方式提交中文数据到服务器乱码问题 Android端代码 AsyncHttpClient client = new AsyncHttpClient(); //URLEncoder.encode(categoryutf-8""); RequestParams params = new RequestParams(); if(path1!=null){ file1=new File(path1); } if(path2!=null){ file2=new F

Dom + Javascript 在本机浏览器中对的表格数据进行排序

dom|javascript|浏览器|排序|数据 在本机浏览器中对的表格数据进行排序在Web应用中,数据从服务器端返回到客户端,以表格形式表现出来.如果要对数据集按指定的列排序显示,常规做法都是向服务器发出请求,服务器端程序重新从数据库中取出按指定列排序的数据,返回给客户端,页面重新显示排序后数据. 采用这种方式有如下缺点:1- 响应时间延迟,每次排序都要向服务器端发送请求,等待结果返回,同时增加网络负载.2- 编程复杂,可维护性差,而且客户端和服务器端代码耦合度很高,客户端和服务器端都要处理排

Java项目中使用Hibernate处理数据

数据|项目 对象-关系映射(O/R映射)是许多软件开发项目的常见需求.数据持久化过程中所涉及到的活动是非常乏味且易于出错的.如果考虑到不可避免的需求变化,我们就面临很大的麻烦:数据存储结构必须与源代码保持同步.再加上移植性问题,事情就变得非常复杂. 而Hibernate可以帮助我们轻松地在永久性存储介质中保存数据,而不需要在选择存储.安装或配置类型方面浪费太多精力.Hibernate允许我们存储任何类型的对象,因此,应用程序不需要知道其数据将使用Hibernate进行持久化.当然,这里提到的任何

把HTML表单提交的数据转化成XML文件

通常,在asp中进行的form表单提交的数据都被写进数据库管理系统中去,如果你想要你的数据是方便携带的数据,你可以把它写进一个XML文件中去.这种方法是跨平台的,因此你所收集的信息不需要进行转换.为了实现上面的想法,你必须先利用Microsoft XMLDOM建立一个XML文件,Microsoft XMLDOM对象有一个扩展对象库,它可以创建组成XML文件所需要的元素.属性.属性值.    当XMLDOM对象实例化以后,必须对各个元素进行引用来建立XML的结构,下面的例子就是先建立根元素,并把她