Привет всем не могу авторизоваться на HTTPS
Может кто подскажет где проблема
Лог сниффера:
Цитата:
POST https://api.betfair.com:443/global/v3/BFGlobalService HTTP/1.1
Connection: keep-alive
Content-Type: text/xml
Content-Length: 582
SOAPAction: "login"
Proxy-Connection: Keep-Alive
Host: api.betfair.com:443
Accept: */*
Accept-Encoding: identity
User-Agent: Borland SOAP 1.2 Paros/3.2.13
xmlns="http://www.betfair.com/publicapi/types/global/v3/"><ipAddress></ipAddress><locationId>0</locationId><password>PASSWORD</password><productId>0</productId><username>USER</username><vendorSoftwareId>2082</vendorSoftwareId></request></login></SOAP-ENV:Body></SOAP-ENV:Envelope>
|
Сам код:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
IdSSLOpenSSL, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, IdCookieManager;
type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
Button1: TButton;
Memo1: TMemo;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var ss:tstringlist;
response: TStringStream;
i:word;
begin
//idHTTP1.disconnect;
response:=TstringStream.Create('');
ss:=Tstringlist.Create;
ss.Add('Connection: keep-alive');
ss.Add('Content-Type: text/xml');
ss.Add('Content-Length: 582');
ss.Add('SOAPAction: "login"');
ss.Add('Proxy-Connection: Keep-Alive');
ss.Add('Host: api.betfair.com');
ss.Add('Accept: */*');
ss.Add('Accept-Encoding: identity');
ss.Add('User-Agent: Borland SOAP 1.2 Paros/3.2.13');
ss.Add('xmlns="http://www.betfair.com/publicapi/types/global/v3/"><ipAddress></ipAddress><locationId>0</locationId><password>PASSWORD</password><productId>0</productId><username>USER</username><vendorSoftwareId>2082</vendorSoftwareId');
ss.Add('></request></login></SOAP-ENV:Body></SOAP-ENV:Envelope>');
idhttp1.Post('https://api.betfair.com/global/v3/BFGlobalService',ss,response);
Memo1.Clear;
Memo1.Lines.Add(Response.DataString );
Response.Free;
end;
end.
Свойства объектов:
Код:
object IdHTTP1: TIdHTTP
IOHandler = IdSSLIOHandlerSocketOpenSSL1
MaxAuthRetries = 5
AllowCookies = True
HandleRedirects = True
RedirectMaximum = 150
ProxyParams.BasicAuthentication = False
ProxyParams.ProxyPort = 0
Request.ContentLength = -1
Request.Accept = 'text/html, */*'
Request.BasicAuthentication = False
Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
HTTPOptions = [hoForceEncodeParams]
Left = 8
Top = 8
end
object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
MaxLineAction = maException
Port = 0
DefaultPort = 0
SSLOptions.CertFile = 'cert.cer'
SSLOptions.Mode = sslmUnassigned
SSLOptions.VerifyMode = []
SSLOptions.VerifyDepth = 0
Left = 64
Top = 8
end
Сертификат взял с головной странички
cert.cer положил в папку с прогой.
Также там лежат библиотеки
libeay32.dll ssleay32.dll
При запуске, нажатии кнопки вываливается ошибка -
Could not load SSL library
Давим кнопку еще раз, ошибка -
Could not load certificate. error:0906D06C:REM routines:REM_read_bio:no start line.
Delphi 10 стоит, Indi 10.5.5.
Помогите люди добрые, уже инет весь изрыл, побывал ну не прет и все!