模拟向服务器POST数据

原创 2006年06月02日 11:40:00

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

 

Java使用HttpPost模拟浏览器向服务器添加数据

使用浏览器工具查看请求url及请求头package com.httpclient; import java.util.ArrayList; import java.util.Date; import ...
  • umgsai
  • umgsai
  • 2016年02月04日 11:06
  • 159

Idhttp.post 模拟向网页服务器提交信息

使用AspWebServer在本机架设Asp服务器有段时间,今天用得着了。Delphi网络编程,朕还是个菜鸟。。呵~` 在窗体中添加Idhttp控件,Indy Clients选项卡,左数第11个就是了...
  • god00
  • god00
  • 2011年06月17日 09:23
  • 1665

使用java模拟向web服务器发送get和post请求

package com.weixin.base.util; import java.io.BufferedReader; import java.io.IOException; import jav...
  • u014712614
  • u014712614
  • 2014年04月17日 17:08
  • 306

服务器读取不到POST的数据

前因:之前因为有个需求,将内容发送到服务器上,但是post、get的数据量似乎都不太够,所以查资料,说是可以通过修改tomcat的配置实现上传信息的大小不受限制  maxPostSize="0" ...
  • heye644171300
  • heye644171300
  • 2016年11月01日 19:22
  • 554

Java应用程序模拟向Servlet发送POST请求

在某些情况下,需要用Java applicatioin来模拟form,向服务器(本文以servlet为例)发送http post请求,包括提交表单域中的数据以及上传文件。如果仅仅是传递form中的数据...
  • pathuang68
  • pathuang68
  • 2011年10月31日 01:34
  • 16466

Java后台模拟向Servlet发送POST文件上传请求(转载)

http://langgufu.iteye.com/blog/2159636
  • l252557035
  • l252557035
  • 2016年07月14日 10:21
  • 239

Java后台模拟向Servlet发送POST文件上传请求

在某些情况下,需要用Java applicatioin来模拟form,向服务器(本文以servlet为例)发送http post请求,包括提交表单域中的数据以及上传文件。如果仅仅是传递form中的数据...
  • bbbbln
  • bbbbln
  • 2016年11月20日 17:26
  • 1440

模拟浏览器向服务器发送和接收数据

创建一个服务器程序,用来接收和返回数据: public void doGet(HttpServletRequest request, HttpServletResponse response) ...
  • zhangao0086
  • zhangao0086
  • 2011年02月17日 17:01
  • 9066

通过POST方式发送数据到远程服务器

使用方法: 在AndroidManifest.xml文件中加入: 在Activity中,需要开启新线程,在新线程中发送请求: new Thread(){ public void run(){ ...
  • a2500100455
  • a2500100455
  • 2015年02月04日 11:38
  • 4163

通过POST方式传递数据给服务器

1.新建动态web工程(ServerPOST)2.新建servlet。设置如下: 3.ServerPOST.javapackage com.example.servletPOST;import ja...
  • lxj1137800599
  • lxj1137800599
  • 2016年04月07日 10:43
  • 1380
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模拟向服务器POST数据
举报原因:
原因补充:

(最多只允许输入30个字)