Проблемы с отправкой сообщений с Indy TIdHTTP

У меня проблемы с отправкой сообщений в службу Amazon SES используя Indy TIdHTTP.

Вот пример кода, который я использую:

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&EmailAddress=test@test%2Ecom', Params);

  finally
    SSLHandler.Free;
    HttpClient.Free; 
    Params.Free;
  end;
end;

Результат

  • В Indy 10.5.7 я получаю сообщение об ошибке: HTTP / 1.1 404 Not Found

  • В Indy 9.0.14 я получаю сообщение об ошибке: Ошибка сокета # 11004

Пробные отладки

  • Эта же демонстрация может успешно ПОЛУЧИТЬ HTML с веб-страницы HTTPS.

  • Если я вставлю указанный выше URL-адрес в браузер, он отобразит ожидаемый результат в формате XML.

Буду признателен за любой совет по делу.

9
задан Zax 14 October 2011 в 02:53
поделиться