indy. how download file from github api lazarus / 38-Networking and Web Programming ---------------------------------------------------------------------- RDL · 2021-09-24 07:40 Hi. There is a line curl Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i curl -O -L -H "Accept: application/octet-stream" -H "Authorization: token mytoken" https://api.github.com/repos/myowner/myrepo/releases/assets/1 23Uploading the file from github is successful. I am trying to do the same via idhttp Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i SSL:=TIdSSL IOHandlerSocketOpenSSL.Create;SSL.SSLOptions.SSLVersions:=[sslvSSLv2,s slvSSLv23,sslvSSLv3,sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2];  HTTP:=TIdHTTP .Create;HTTP.IOHandler:=SSL;HTTP.HandleRedirects:=True;HTTP.ConnectTim eout:=5000;HTTP.ReadTimeout:=5000;HTTP.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1';HTTP.Request.CustomHeade rs.AddValue('Accept','application/octet- stream');HTTP.Request.CustomHeaders.AddValue('Authorization','token my token');MS:=TMemoryStream.Create;HTTP.Get('https://api.github.com/repo s/myowner/myrepo/releases/assets/123',MS);MS.SaveToFile(SaveFile);MS.F ree;HTTP.Free;  But the file is not loaded, the response from the github api is saved instead. What am I doing wrong? PS. I can write a real download link from github if needed ---------------------------------------------------------------------- RDL · 2021-09-24 13:01 Adding Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i HTTP.Request.Accept: = EmptyStr;solved my problem. Thanks. ---------------------------------------------------------------------- Remy Lebeau · 2021-09-24 19:08 Quote from: RDL on September 24, 2021, 09:40:41 amCode: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i HTTP.Request.CustomHeaders.AddValue('Accept','application/octet- stream');Quote from: RDL on September 24, 2021, 03:01:21 pmAdding Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i HTTP.Request.Accept: = EmptyStr;solved my problem. Why are you using the Request.CustomHeaders property to set the Accept header at all?  You should be setting the Request.Accept property to the desired value, eg: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i HTTP.Request.Accept: = 'application/octet-stream'; In any case, you are leaking your SSL object, and you will leak your MS and HTTP objects as well if TIdHTTP.Get() raises an exception. I would use this code instead: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i HTTP := TIdHTTP.Create;try  SSL := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);  SSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2]; HTTP.IOHandler := SSL;  HTTP.HandleRedirects := True;  HTTP.ConnectTimeout := 5000;  HTTP.ReadTimeout := 5000;  HTTP.ProtocolVersion := pv1_0;  HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1';  HTTP.Request.Accept := 'application/octet-stream';  HTTP.Request.BasicAuthentication := False;  HTTP.Request.CustomHeaders.AddValue('Authorization', 'token mytoken');  MS := TMemoryStream.Create;  try    HTTP.Get('https://api. github.com/repos/myowner/myrepo/releases/assets/123', MS);    MS.SaveToFile(SaveFile);  finally    MS.Free;  end;finally  HTTP.Free;end; ---------------------------------------------------------------------- RDL · 2021-09-25 05:51 Remy Lebeau, thanks for the answer. In my working code, "try/except/finally" is accounted for. Here I wrote it just as an example. Thanks again!