TIdHttp e SSL

29/06/2012

0

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á!
Murilo Junqueira

Murilo Junqueira

Responder

Post mais votado

04/07/2012

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.

Murilo Junqueira

Murilo Junqueira
Responder

Mais Posts

02/07/2012

Hacson Alexandre

Tente registrar as dlls. Algo do tipo:

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


ou

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

02/07/2012

Murilo Junqueira

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

02/07/2012

Hacson Alexandre

Você poderia postar o seu código aqui ?
Você está tentando apenas enviar e-mail ou outra função em específico ?
Responder

02/07/2012

Murilo Junqueira

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

02/07/2012

Hacson Alexandre

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

Tente setar como:
fsparam : TIdMultipartFormDataStream;
Responder

02/07/2012

Murilo Junqueira

é do tipo TMemoryStream

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

o resto acho que está ok...
Responder

04/07/2012

Murilo Junqueira

resolvido, atualizei para o indy 10!
Responder

04/07/2012

Murilo Junqueira

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

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 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

09/11/2017

Fernando Tremonti

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar