TIdHttp e SSL

29/06/2012

44

Pessoal, estou tentando utilizar o TIdHttp com SSL mais não estou conseguindo, já estou utilizando o IdSSLIOHandlerSocket1
na propriedade IOHandler do IdHttp quando envio o Post recebo a mensagem: Could not load SSL Library
as dll`s libeay32 e ssleay32 estão na pasta do projeto, como carrego essas danadas? procurando na internet diz que não precisa, que é carregada automaticamente mais não vai, já tentei por na System32, SysWow etc...

alguem sabe como usar o TIdHttp com SSL httpS:\\...

Obrigado desde já!
Responder

Posts

Tente registrar as dlls. Algo do tipo:

regsvr32 %windir%\System32\suadll.dll /s


ou

regsvr32 %windir%\SysWOW64\suadll.dll /s
Responder
Tente registrar as dlls. Algo do tipo:

regsvr32 %windir%\System32\suadll.dll /s


ou

regsvr32 %windir%\SysWOW64\suadll.dll /s


Não deu certo, ocorre o mesmo problema, pelo que vi essas dlls não precisa ser registradas, bastariam estar no diretório da aplicação...

alguém com alguma luz no fim do túnel?

Obrigado!
Responder
Você poderia postar o seu código aqui ?
Você está tentando apenas enviar e-mail ou outra função em específico ?
Responder
Olá, o que eu quero fazer é consumir o webservice do MOIP (meio de pagamento) via delphi, não é utilizar e-mail, consigo fazer isso em C# (asp.net)
o código em C# funcionando:

string auth = Convert.ToBase64String(Encoding.UTF8.GetBytes(Token + : + Key));
client.Headers.Add(Authorization: Basic + auth);
client.Headers.Add(User-Agent: Mozilla/4.0);
byte[] ResponseArray = client.UploadData(URI, POST, Encoding.UTF8.GetBytes(XMLInstrucao));
string Response = Encoding.UTF8.GetString(ResponseArray);
xml.LoadXml(Response);
string xStatus = xml.DocumentElement.SelectSingleNode(//Resposta//Status).InnerText;
string xToken = xml.DocumentElement.SelectSingleNode(//Resposta//Token).InnerText;

=============================================== - codigo delphi
XMLResponse := TStringStream.Create();
XMLRequest := TStringStream.Create();
sl := TStringList.Create;
fsParam := TMemoryStream.Create;
DataStream := <xml></xml>
sl.Add(DataStream);
sl.SaveToStream(fsParam);
IdHTTP.IOHandler := IdSSLIOHandlerSocket1;
IdHTTP.Request.CustomHeaders.Clear;
IdHTTP.Request.Clear;
IdHTTP.Request.ContentType := text/xml;
IdHTTP.Request.CustomHeaders.Add(Authorization: Basic + xAut);
IdHTTP.Request.CustomHeaders.Add(User-Agent: Mozilla/4.0);

strProdutos := IdHTTP.Post(https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica, fsParam); //<--- O ERRO É NESSA LINHA:

MResp.Lines.Add(strProdutos);


==========================================================================================

Obrigado novamente!

att.
Responder
Essa parte não é muito minha praia.
A variável fsparam é de que tipo ?

Tente setar como:
fsparam : TIdMultipartFormDataStream;
Responder
é do tipo TMemoryStream

e problema ai é com a diaba da dll do SSL...

o resto acho que está ok...
Responder
resolvido, atualizei para o indy 10!
Responder
Pessoal, agora complicou, disse que tinha funcionando mais foi parcialmente, pq em uma maquina funciona
em 3 outras não, mesmo aplicativo, mesma dlls etc.. copia a psta com o projeto para outra maquina
executo o exe e could not load ssl library

procurei por essas dlls em uma maquina tem instalada por outros programas em outras não...

teria como carregar essas dlls de um local especifico?

att.
Responder
Resolvido de VEZ, na maquina que funcionava tinha 2 dlls no SysWOW64 (que não sei de onde vieram) já estavam instaladas na maquina (windows novo...) nenhuma das dlls que baixei no site oficial funcionou!
coloquei essas dlls nas outras maquinas e começou a funcionar, muito bagunçado o esquema da OpenSSL e o indy e controlar essas versões, já vi várias pessoas reclamando do problema e quando trocam dlls funciona!

mais de qualquer forma vlw, se alguem tiver o mesmo problema e já testou todas dlls me diga que eu envio as que estou utilizando!

att.
Responder

08/04/2016

Carlos Borges

Murilo, mas a pergunta que fica é? Mas funcionou o seu pgto com Delphi? Também utilizo MOIP em Delphi Prim (WEB), se funcionou tem como postar em demo ou código? Desde já obrigado
Responder

14/02/2017

Central S/a

Tive esse problema também, o que ocorreu foi que achei em um fórum que eu deveria usar as duas dlls do openssl como 32bits e não 64bits. De fato, pois o executável que estou gerando é 32bits e não 64bits.
Depois que baixei as dlls para a plataforma correta e colocar junto com o executável funcionou certo.
Responder
Olá, consegue me enviar as dlls?
obrigado
Responder

23/07/2019

Marcos Segundo

Acredito que já resolveu seu problema mas li por aqui que vc coloca as dll´s na pasta do seu executável.
Ainda não testei.
Meu problema é associar o componente idhttp com o componente IdServerIOHandlerSSLOpenSSL1.
Falam para usar o IOHandler do IDHttp mas o IdServerIOHandlerSSLOpenSSL1 não aparece nas escolhas que estão em vermelho.
resumindo não tenho como associar o IdServerIOHandlerSSLOpenSSL1 ao IDHTTP para abrir conexões SSL.
Alguem tem uma DICA?
Sou novo no Delphi XE7.
Se alguém tiver um fonte ensinando como fazer o seguinte, seria bem vindo.
preciso baixar um arquivo em um link.
preciso saber o tamanho dele (onde aparece o erro ''HTTP:/1.1 302 ou IOHandler value is not valid'').
Alguém ja teve esse Problema?
Responder