idhttp提交数据出现http1.1/500异常
idhttp提交数据出现http1.1/500错误
在ie登录成功会跳转页面
抓包post后的数据如下:
HTTP/1.1 302 Found
Date: Sat, 17 Dec 2011 03:03:43 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: http://www.ordroshop.cn/VipHome.aspx
Set-Cookie: ASP.NET_SessionId=d0bejn55ke5jou55vqao1u55; path=/; HttpOnly
Set-Cookie: j6ZJnpOJgJcqEuXCO5GZgzN0XF7eV%2Bl7=Id=YVnZLA8Oiaw=&Account=K2%2BUldK9l2YzdFxe3lfpew==&Type=aWrzlN6mAyI=; path=/
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 153
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.ordroshop.cn/VipHome.aspx">here</a>.</h2>
</body></html>
个人的程序如下
procedure TForm1.btnStartClick(Sender: TObject);
var
F: TextFile;
FileName: String;
url: String;
FeedBack: String;
mStream: TMemoryStream;
sData: String;
Feedback: String;
Data: TStrings;
n, n1, n2: Integer;
begin
FileName := FPath + 'temp.txt';
url := 'http://www.ordroshop.cn/login.aspx';
mStream := TMemoryStream.Create;
FHttp := TIDHttp.Create(nil);
FHttp.HandleRedirects := True;
Feedback := FHttp.Get(url);
FHttp.Get(url, mStream);
mStream.SaveToFile(FileName);
FreeAndNil(mStream);
AssignFile(F, FileName);
Reset(F);
while Not Eof(F) do
begin
ReadLn(F, Data);
Data := utf8toansi(data);
n := pos('__VIEWSTATE', sData);
if n > 0 then
begin
n1 := pos('value="', sdata);
n2 := pos('" />', sdata);
FViewState := copy(sdata, n1 + 7, n2 - n1 - 7);
mminfo.Lines.Add(FViewState);
end;
n := pos('__EVENTVALIDATION', Data);
if n > 0 then
begin
n1 := pos('value="', sdata);
n2 := pos('" />', sdata);
FViewState := copy(sdata, n1 + 7, n2 - n1 - 7);
mminfo.Lines.Add(FViewState);
break;
end;
end;
CloseFile(F);
//上面的程序为了得到__VIEWSTATE和__EVENTVALIDATION的值
Data := TStringList.Create;
Data.Add('__VIEWSTATE=' + FViewState);
Data.Add('__EVENTVALIDATION=' + FEventValidation);
Data.Add('=');
Data.Add('txtAccount=ZXdgMwRX');
Data.Add('txtPassword=DkEn9I866');
Data.Add('LoginSubmit.x=54');
Data.Add('LoginSubmit.y=22');
Feedback := FHttp.Post('http://www.ordroshop.cn/login.aspx', data);
mminfo.Lines.Add(Feedback);
end;
程序执行到FeedBack := FHttp.Post('http://www.ordroshop.cn/login.aspx', data);
出现project temp.exe raised exception class EIdHTTPProtocalException with message 'HTTP/1.1 500 Internal Server
请问各位老大帮忙看看
------解决方案--------------------
500 = 服务器遇到错误,无法完成请求。
------解决方案--------------------
在IDHTTP的OnRedirects事件中写转向的代码.!
------解决方案--------------------
出现了非法字符吧?
在ie登录成功会跳转页面
抓包post后的数据如下:
HTTP/1.1 302 Found
Date: Sat, 17 Dec 2011 03:03:43 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: http://www.ordroshop.cn/VipHome.aspx
Set-Cookie: ASP.NET_SessionId=d0bejn55ke5jou55vqao1u55; path=/; HttpOnly
Set-Cookie: j6ZJnpOJgJcqEuXCO5GZgzN0XF7eV%2Bl7=Id=YVnZLA8Oiaw=&Account=K2%2BUldK9l2YzdFxe3lfpew==&Type=aWrzlN6mAyI=; path=/
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 153
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.ordroshop.cn/VipHome.aspx">here</a>.</h2>
</body></html>
个人的程序如下
procedure TForm1.btnStartClick(Sender: TObject);
var
F: TextFile;
FileName: String;
url: String;
FeedBack: String;
mStream: TMemoryStream;
sData: String;
Feedback: String;
Data: TStrings;
n, n1, n2: Integer;
begin
FileName := FPath + 'temp.txt';
url := 'http://www.ordroshop.cn/login.aspx';
mStream := TMemoryStream.Create;
FHttp := TIDHttp.Create(nil);
FHttp.HandleRedirects := True;
Feedback := FHttp.Get(url);
FHttp.Get(url, mStream);
mStream.SaveToFile(FileName);
FreeAndNil(mStream);
AssignFile(F, FileName);
Reset(F);
while Not Eof(F) do
begin
ReadLn(F, Data);
Data := utf8toansi(data);
n := pos('__VIEWSTATE', sData);
if n > 0 then
begin
n1 := pos('value="', sdata);
n2 := pos('" />', sdata);
FViewState := copy(sdata, n1 + 7, n2 - n1 - 7);
mminfo.Lines.Add(FViewState);
end;
n := pos('__EVENTVALIDATION', Data);
if n > 0 then
begin
n1 := pos('value="', sdata);
n2 := pos('" />', sdata);
FViewState := copy(sdata, n1 + 7, n2 - n1 - 7);
mminfo.Lines.Add(FViewState);
break;
end;
end;
CloseFile(F);
//上面的程序为了得到__VIEWSTATE和__EVENTVALIDATION的值
Data := TStringList.Create;
Data.Add('__VIEWSTATE=' + FViewState);
Data.Add('__EVENTVALIDATION=' + FEventValidation);
Data.Add('=');
Data.Add('txtAccount=ZXdgMwRX');
Data.Add('txtPassword=DkEn9I866');
Data.Add('LoginSubmit.x=54');
Data.Add('LoginSubmit.y=22');
Feedback := FHttp.Post('http://www.ordroshop.cn/login.aspx', data);
mminfo.Lines.Add(Feedback);
end;
程序执行到FeedBack := FHttp.Post('http://www.ordroshop.cn/login.aspx', data);
出现project temp.exe raised exception class EIdHTTPProtocalException with message 'HTTP/1.1 500 Internal Server
请问各位老大帮忙看看
------解决方案--------------------
500 = 服务器遇到错误,无法完成请求。
------解决方案--------------------
在IDHTTP的OnRedirects事件中写转向的代码.!
------解决方案--------------------
出现了非法字符吧?