[问题]HTTP中POST的使用方法,给个提示,谢谢

内核编译和嵌入式产品的设计与开发
回复
头像
weilichun
帖子: 218
注册时间: 2007-09-09 15:41
来自: Beijing
联系:

[问题]HTTP中POST的使用方法,给个提示,谢谢

#1

帖子 weilichun » 2008-03-12 20:50

我们学校要连Intenet必须注册网关,是在网页上填写表单。下面网页中的部分HTML
保存为本地HTML文件,用浏览器打开,填写表单是可以注册的。
我现在想用POST方法填写表单,请问POST内容该怎么写呢。
[有时候不能用浏览器,只能用telnet,所以有这个想法]


代码: 全选

<form name=form1 method=post action="http://www.sample.edu.cn" >

用户名:

<input name=DDDDD maxlength=26 1px" size="22">
密 码:

<input type=password name=upass maxlength=16>

<INPUT type=submit value=连接网络 name=0MKKey target='_self'>

</form>

代码: 全选

$telnet www.sample.edu.cn 80
POST / HTTP/1.0
???
请大家帮忙看看
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2008-03-12 21:51

post。是地址栏带上一串参数的哦。
● 鸣学
thomascatlee
帖子: 3
注册时间: 2007-04-07 11:20

Re: [问题]HTTP中POST的使用方法,给个提示,谢谢

#3

帖子 thomascatlee » 2008-03-25 21:21

你可以用ethereal或者wireshark抓一下用浏览器提交时的报文,应该是类似这个样子:
POST http://www.sample.edu.cn HTTP1.1
content-type: application/x-www-form-urlencoded
content-length: xxx

DDDDD=username&upass=password

你要做的,就是把这段报文通过80端口以TCP连接发去服务器上

没有试过用Telnet发HTTP报文,这个想法有新意,可以一试

weilichun 写了:我们学校要连Intenet必须注册网关,是在网页上填写表单。下面网页中的部分HTML
保存为本地HTML文件,用浏览器打开,填写表单是可以注册的。
我现在想用POST方法填写表单,请问POST内容该怎么写呢。
[有时候不能用浏览器,只能用telnet,所以有这个想法]


代码: 全选

<form name=form1 method=post action="http://www.sample.edu.cn" >

用户名:

<input name=DDDDD maxlength=26 1px" size="22">
密 码:

<input type=password name=upass maxlength=16>

<INPUT type=submit value=连接网络 name=0MKKey target='_self'>

</form>

代码: 全选

$telnet www.sample.edu.cn 80
POST / HTTP/1.0
???
请大家帮忙看看
头像
cocomama
帖子: 869
注册时间: 2007-04-05 17:57
来自: 吉林──>海南──>大连──>延边──>北京──>德黑兰──>(x,y)

#4

帖子 cocomama » 2008-03-25 23:12

eexpress 写了:post。是地址栏带上一串参数的哦。
那是get
沒有人成全我的今天
亦没有人阻挡我的明天
输掉一个现在
我要赢得一个未来!

如果输了今生那么我也不要来世!

坐而論道,不如起而行動!

海至尽头天是岸 山到高处人为峰!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#5

帖子 eexpress » 2008-03-25 23:27

啊。糊涂了。

这个是post的。

代码: 全选

☎  cat /home/exp/应用/脚本/paste-pic.perl
#!/usr/bin/perl -w

use strict;
use WWW::Mechanize;

sub xclip {
	open(XCLIP, "|/usr/bin/xclip") or warn("No xclip - use .p\n"),
		return;
	print XCLIP $_[0];
	close XCLIP;
}

my $poster="eexp";
my $voice='/home/exp/媒体/◇事件声音-et/g2ipmsg.wav';
my $paste_url = 'http://paste.ubuntu.org.cn/';
my $screenshot=$ARGV[0];

my $mech = WWW::Mechanize->new();
$mech -> get("$paste_url");
$mech -> submit_form(
    with_fields => { 
        "screenshot" => $screenshot ,
        "poster" => $poster
    } ,
    form_name => "editor" ,
    button => "paste"
);
if ($mech->success()) {
	my $rr=$mech->uri();
    print($rr."\n");
    xclip($rr);
    `aplay $voice`;
    my $rrr="贴图地址:<span size=\"large\" color=\"red\" weight=\"bold\">".$rr."</span>";
#    print $rrr;
    `tooltip.pl '$rrr'`;
#    my $r = $mech->uri();
#    `bash -c "echo $r|xclip -i"`;
} else {
    `tooltip.pl "贴图失败。"`;
    print "ERROR:\t".$mech->status()."\n";
}
● 鸣学
头像
weilichun
帖子: 218
注册时间: 2007-09-09 15:41
来自: Beijing
联系:

#6

帖子 weilichun » 2008-04-05 19:49

代码: 全选

POST / HTTP/1.1
Content-Length: 62
//空行
DDDDD=u050xxxxx&upass=xxxxxxxx&0MKKey=%C1%AC%BD%D3%CD%F8%C2%E7
content-Length是下面一行数据的长度
头像
weilichun
帖子: 218
注册时间: 2007-09-09 15:41
来自: Beijing
联系:

Re: [问题]HTTP中POST的使用方法,给个提示,谢谢

#7

帖子 weilichun » 2008-11-04 14:04

呵呵,多谢提醒。用Wireshark抓包,然后把报文复制到一个文本用,再利用SHELL的重定向把报文发到80端口。

代码: 全选

telnet foo.bar.com 80 < /your/director/content.txt 
这样就OK了
thomascatlee 写了:你可以用ethereal或者wireshark抓一下用浏览器提交时的报文,应该是类似这个样子:
POST http://www.sample.edu.cn HTTP1.1
content-type: application/x-www-form-urlencoded
content-length: xxx

DDDDD=username&upass=password

你要做的,就是把这段报文通过80端口以TCP连接发去服务器上

没有试过用Telnet发HTTP报文,这个想法有新意,可以一试

weilichun 写了:我们学校要连Intenet必须注册网关,是在网页上填写表单。下面网页中的部分HTML
保存为本地HTML文件,用浏览器打开,填写表单是可以注册的。
我现在想用POST方法填写表单,请问POST内容该怎么写呢。
[有时候不能用浏览器,只能用telnet,所以有这个想法]


代码: 全选

<form name=form1 method=post action="http://www.sample.edu.cn" >

用户名:

<input name=DDDDD maxlength=26 1px" size="22">
密 码:

<input type=password name=upass maxlength=16>

<INPUT type=submit value=连接网络 name=0MKKey target='_self'>

</form>

代码: 全选

$telnet www.sample.edu.cn 80
POST / HTTP/1.0
???
请大家帮忙看看
回复