Mam problemy z publikowaniem w serwisie Amazon firmy SES przy użyciu usługi TIdHTTP firmy Indy.Publikuj problemy z Indy TIdHTTP
Oto przykład kodu używam:
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;
Wynik
Pod Indy 10.5.7 pojawia się błąd: HTTP/1.1 404 Not Found
Pod indeksem 9.0.14 pojawia się błąd: Błąd gniazda # 11004
debugowania Trials
to samo demo może z powodzeniem GET HTML od strony HTTPS.
Jeśli wkleję powyższy adres URL do przeglądarki, wyświetli oczekiwany wynik XML.
Byłbym wdzięczny za wszelkie porady dotyczące przyczyny.
wierzę trzeba dll SSL-tych w tym samym folderze co aplikacja lub w folderze system32 systemu Windows ... daj mi znać, jeśli chcesz, żebym przesłał te, które mam gdzieś, moja wersja to libeay32.dll 1.0.0.4 i ssleay32.dll 1.0.0.4 – ComputerSaysNo
Nie musisz 'POST' any' Params', jesteś pewien, że chcesz komunikować się z webservice w ten sposób? –
@PrematureOptimization wszystko po? jest parametrem nazwa = wartość, w tym przypadku Action = VerifyEmailAddress i AWSAccessKeyId = 012Some123Key46 & EmailAddress = test @ test% 2Ecom – ComputerSaysNo