【发布时间】:2015-11-09 11:55:11
【问题描述】:
我正在尝试向网站发送 Get 请求。问题是,如果请求者是机器人,网站就会重新识别
const _URL = 'https://www.URL.com/';
var
sSessionID:String;
Params: TStringList;
IdSSL: TIdSSLIOHandlerSocketOpenSSL;
begin
IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP1);
try
IdHTTP1.IOHandler := IdSSL;
IdHTTP1.AllowCookies := True;
IdHTTP1.HandleRedirects := True;
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0';
IdHTTP1.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
IdHTTP1.Request.AcceptLanguage := 'en-GB,en;q=0.5';
IdHTTP1.Request.Connection := 'keep-alive';
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
sSessionID := IdHTTP1.Get(_URL);
{....
extracting SessionID
Params.Add('SessionID=' + 'sSessionID');
IdHTTP1.Post(_URL, Params);
.....}
finally
IdSSL.Free;
end;
IdHTTP.get 的结果是 <!DOCTYPE html><head><META NAME="ROBOTS"..... 它是空的,我无法获得会话 ID。
http 请求头与我的浏览器发送的相同。
【问题讨论】:
-
是否有您尝试调用的真实 URL?
-
@JensBorrisholt 不幸的是我做不到
-
那我很难帮你,因为我无法测试自己。
-
但是您可以尝试在 HTTP 标头中发送假 IP 地址。但它是否有效我无法说,因为我无法亲自尝试。
标签: delphi http-post indy idhttp