idhttp post百度问题
procedure TForm1.btn1Click(Sender: TObject);
var
Param:TStringList;
RStream:TStringStream;
begin
Param:=TStringList.Create;
RStream:=TStringStream.Create('');
Param.Add('username=showlee000');
Param.Add('normModPsp=********');
Param.Add('mem_pass=true');
IdHTTP1.Post('http://passport.baidu.com/?login&tpl=mn',
Param,RStream);
mmo1.Text:=RStream.DataString;
end;
--------------------下面是登陆界面核心代码--------------------
<tr>
<td width="50" class="f14">用户名:</td>
<td width="156"><input type="text" name="username" id="username" value="showlee000" onChange="chechUserOld('username')" class="ip"/></td>
</tr>
<tr id="trPassNorm" style="display:none;">
<td width="50" class="f14" valign="top">密 码:</td>
<td width="156"><input type="password" id="normModPsp" value="" class="ip"/></td>
</tr>
为什么登陆不成功?
Param.Add('normModPsp=********');改成
Param.Add('password=********');就能成功
这是为什么
[解决办法]
建议再结合抓包程序看一下实际发出去的数据。
[解决办法]
看提交是是否确发了javascript 代码?
看看那部份代码
[解决办法]
路过~~~~~
友情up~~~~~~~~
[解决办法]
[解决办法]
[解决办法]
[解决办法]
登陆百度必须先下载数字证书;下载SSL的加密DLL;记得以前SSL现在国外对国内封锁的;只有DLL下载;
基本解决办法;先手动下载数字证书;保存为文件;每次POST前读取证书;在证书过期前手动下载新的证书;
[解决办法]
WireShark抓包蛮好用的
[解决办法]
方案二:WebBrowser1 提交可以很简单的完成;但是兼容性不好;代码很多可以在网上搜索;