TIdHttp e SSL
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á!
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
Curtidas 0
Melhor post
Murilo Junqueira
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.
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.
GOSTEI 1
Mais Respostas
Hacson Alexandre
29/06/2012
Tente registrar as dlls. Algo do tipo:
ou
regsvr32 %windir%\System32\suadll.dll /s
ou
regsvr32 %windir%\SysWOW64\suadll.dll /s
GOSTEI 0
Murilo Junqueira
29/06/2012
Tente registrar as dlls. Algo do tipo:
ou
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!
GOSTEI 0
Hacson Alexandre
29/06/2012
Você poderia postar o seu código aqui ?
Você está tentando apenas enviar e-mail ou outra função em específico ?
Você está tentando apenas enviar e-mail ou outra função em específico ?
GOSTEI 0
Murilo Junqueira
29/06/2012
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.
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.
GOSTEI 0
Hacson Alexandre
29/06/2012
Essa parte não é muito minha praia.
A variável fsparam é de que tipo ?
Tente setar como:
A variável fsparam é de que tipo ?
Tente setar como:
fsparam : TIdMultipartFormDataStream;
GOSTEI 0
Murilo Junqueira
29/06/2012
é do tipo TMemoryStream
e problema ai é com a diaba da dll do SSL...
o resto acho que está ok...
e problema ai é com a diaba da dll do SSL...
o resto acho que está ok...
GOSTEI 0
Murilo Junqueira
29/06/2012
resolvido, atualizei para o indy 10!
GOSTEI 0
Murilo Junqueira
29/06/2012
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.
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.
GOSTEI 0
Carlos Borges
29/06/2012
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
GOSTEI 0
Central A
29/06/2012
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.
Depois que baixei as dlls para a plataforma correta e colocar junto com o executável funcionou certo.
GOSTEI 0
Fernando Tremonti
29/06/2012
Olá, consegue me enviar as dlls?
obrigado
obrigado
GOSTEI 0
Marcos Segundo
29/06/2012
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?
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?
GOSTEI 0