Indy 9 + OneDrive ошибка создания папки
Я пытаюсь создать папку на OneDrive. Этот код работает нормально с XE8 + Indy 10. Но с Indy 9 и Delphi 7 два раза из трех или около того у меня есть: "EIdHTTPProtocolException с сообщением"http/1.1 404 not found". Папка создается в любом случае.
Есть ли способ избежать исключения с Indy 9? Я не могу использовать Indy 10 в Delphi 7 из-за спецификации.
procedure OneDriveCreateFolderTest;
const
URL = 'https://api.onedrive.com/v1.0/drive/root::/children';
var
IdHttp: TIdHttp;
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocket; // XE8 => TIdSSLIOHandlerSocketOpenSSL
Stream: TStringStream;
begin
IdHttp := TidHTTP.Create(nil);
try
IdHttp.HandleRedirects := True;
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocket.Create(IdHttp);
IdSSLIOHandlerSocket.SSLOptions.Method := sslvTLSv1;
IdHttp.IOHandler := IdSSLIOHandlerSocket;
IdHttp.Request.CustomHeaders.FoldLength := MaxInt;
IdHttp.Request.CustomHeaders.Values['Authorization'] := 'Bearer ' + FAccessToken;
IdHttp.Request.BasicAuthentication := False;
IdHttp.Request.ContentType := 'application/json';
Stream := TStringStream.Create('{ "name": "TestDir", "folder": { } }');
try
IdHttp.Post(URL, Stream);
finally
Stream.Free;
end;
finally
IdHttp.Free;
end;
end;