读书人

post数据的有关问题 搞定立即给分!

发布时间: 2012-03-17 19:06:27 作者: rapoo

post数据的问题 搞定立即给分!!
我下载了一个delphi写的程序 通过嗅探他的post按钮 结果如下:
POST /gb.asp HTTP/1.1
Accept: Accept: */*, /gb.asp, 127.0.0.1
Content-Type: application/x-www-form-urlencoded
User-Agent: MyApp
Host: 127.0.0.1
Content-Length: 77
Cache-Control: no-cache

server=测试服务器&ck=留言成功&action=saveup&username=用户名&password=密码


post成功了.
然后我用idhttp进行post,嗅探结果如下:


POST /gb.asp HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 149
Host: 127.0.0.1
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)

server=%B2%E2%CA%D4%B7%FE%CE%F1%C6%F7%26ck%3D%C1%F4%D1%D4%B3%C9%B9%A6%26action%3Dsaveup%26username%3D%D3%C3%BB%A7%C3%FB%26password%3D%C3%DC%C2%EB

post没有成功! 怎么连pos的内容都变了? 我用的组件有问题?他用什么组件?

[解决办法]
以前学ASP时,记得好象带汉字的URL,需要经URLEnCode处理的,不知是不是这方面的原因。
[解决办法]
var
_HTTP : TIDHTTP;
TempStr : TStrings;
begin
_HTTP := TIDHTTP.Create(Form1);
TempStr := TStringList.Create;
_HTTP.HandleRedirects := True;
_HTTP.Request.Accept := '*/*, /gb.asp, 127.0.0.1 ';
_HTTP.Request.ContentType := 'application/x-www-form-urlencoded ';
_HTTP.Request.UserAgent := 'MyApp ';
_HTTP.Request.CacheControl := 'no-cache ';
try
TempStr.Add( 'server=测试服务器 ');
TempStr.Add( 'ck=留言成功 ');
TempStr.Add( 'action=saveup ');
TempStr.Add( 'username=用户名 ');
TempStr.Add( 'password=密码 ');
_HTTP.Post( 'http://localhost/gb.asp ',TempStr);
except
Messagebox(0, 'POST数据出错 ', '提示 ',mb_OK);
end;
end;

读书人网 >.NET

热点推荐