Я пытаюсь получить контент с веб-сайта (Jira rest api в https). На моем предприятии есть sso для подключения к этому сайту.
Когда я использую idHTTP для получения контента, я получаю HTTP 1.1 400.
Существует программное обеспечение, которое делает это на Java. Во-первых, нам нужно открыть сайт с помощью Chrome, поскольку он использует файл .cookies.db.
Мой первый код:
procedure TFMain.Button1Click(Sender: TObject);
var
lHTTP: TIdHTTP;
res: string;
begin
lHTTP := TIdHTTP.Create;
try
res := lHTTP.Get(edApi.Text);
Memo1.Lines.Add(res);
finally
lHTTP.Free;
end;
end;
Мой второй код:
procedure TFMain.Button3Click(Sender: TObject);
var
HTTP : TIDHTTP;
Cookie : TidCookieManager;
res: string;
begin
try
HTTP := TIDHTTP.Create(nil);
Cookie := TidCookieManager.Create(nil);
HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1';
HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
HTTP.Request.AcceptLanguage := 'en-us;q=0.7,en;q=0.3';
HTTP.Request.AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.7';
HTTP.Request.Pragma := 'no-cache';
HTTP.Request.CacheControl := 'no-cache';
HTTP.Request.RawHeaders.Add('X-Requested-With: XMLHttpRequest');
HTTP.AllowCookies := True;
HTTP.HandleRedirects := True;
HTTP.ProtocolVersion := pv1_1;
HTTP.Request.Connection := 'Keep-Alive';
HTTP.CookieManager := Cookie;
res := http.Get(edApi.Text);
Memo1.Lines.Clear;
Memo1.Lines.Add(res);
finally
FreeAndNil(Cookie);
FreeAndNil(HTTP);
end;
end;
Я действительно не знал, что делать сейчас .. спасибо