Sto riscontrando problemi con il servizio SES di Amazon tramite TIdHTTP di Indy.Problemi di posta con Indy TIdHTTP
Ecco un esempio di codice che sto usando:
procedure TMainFrm.btnAmazonSESClick(Sender: TObject);
var
SSLHandler: TIdSSLIOHandlerSocket;
HttpClient: TIdHTTP;
Params: TStringStream;
begin
SSLHandler := TIdSSLIOHandlerSocket.Create(Self);
HttpClient := TIdHTTP.Create(Self);
Params := TStringStream.create('');
try
with SSLHandler do
SSLOptions.Method := sslvSSLv3
with HttpClient do
begin
IOHandler := SSLHandler;
AllowCookies := True;
HandleRedirects := True;
HTTPOptions := [hoForceEncodeParams];
Request.ContentType := 'application/x-www-form-urlencoded';
end;
PageMemo.Text := HttpClient.Post('https://email.us-east-1.amazonaws.com?Action=VerifyEmailAddress&AWSAccessKeyId=012Some123Key46&[email protected]%2Ecom', Params);
finally
SSLHandler.Free;
HttpClient.Free;
Params.Free;
end;
end;
Risultato
Sotto Indy 10.5.7 ottengo l'errore: HTTP/1.1 404 Not Found
Sotto Indy 9.0.14 viene visualizzato l'errore: Errore socket # 11004
Trials debug
Questa stessa demo può ottenere con successo il codice HTML da una pagina web HTTPS.
Se si incolla l'URL sopra in un browser, viene visualizzato il risultato XML previsto.
Apprezzerei qualsiasi consiglio sulla causa.
credo che hai bisogno i DLL SSL di nella stessa cartella dell'applicazione o nella cartella system32 di Windows ... fammi sapere se vuoi che carichi quelli che ho da qualche parte, la mia versione è libeay32.dll 1.0.0.4 e ssleay32.dll 1.0.0.4 – ComputerSaysNo
Non lo fai 'POST' any' Params', sei sicuro di voler comunicare con il webservice in questo modo? –
@PrematureOptimizzazione tutto dopo? è param name = value, in questo caso Action = VerifyEmailAddress & AWSAccessKeyId = 012Some123Key46 & EmailAddress = test @ test% 2Ecom – ComputerSaysNo