Van Posted May 6, 2019 Author Report Share Posted May 6, 2019 Van, esse XML de envio, é do que mesmo? Tem certeza que é nesse portal? Oi, Kapiaba... Sim, a URL está correta. É o envio de operações de fomento para assinatura digital.... Eu já fiz todo o processo de homologação com essa empresa. e tudo funcionou direitinho. Quando fui implantar no cliente obtive o erro (da primeira postagem)... Vim testar novamente no meu computador e deu o erro aqui também... Por isso estou tão sem rumo, era algo que estava funcionando e agora não está mais e eu não tenho idéia do porquê. A rotina é bastante simples, mas, resolveu engasgar no SEND(). Será que tem alguma forma de obter algum detalhamento do erro que está acontecendo? PS - Por desencargo de consciência, tentei enviar um XML para a URL em produção e o erro persistiu. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 6, 2019 Report Share Posted May 6, 2019 Veja se ajuda: # define HTTPREQUEST_PROXYSETTING_PROXY 2 Funcion... try oHttp := CreateObject( "winhttp.winhttprequest.5.1" ) oHttp:SetTimeouts(40000,40000,40000,40000) // VERIFICAR SE FICA LENTO oHttp:Open( "GET", "http://24timezones.com/pt_horamundial/brasilia_hora_local.php" , .F. ) oHttp:Send() cHtml := oHttp:ResponseText() catch Try oHttp := CreateObject('MSXML2.XMLHTTP') Catch oHttp := CreateObject('Microsoft.XMLHTTP') End end return nil Quote Link to comment Share on other sites More sharing options...
Van Posted May 6, 2019 Author Report Share Posted May 6, 2019 Kapiaba, não deu certo... Sistem, o status voltou como 1 antes do Send() e em seguida já saiu pelo catch (mensagem de erro no SEND) Estou anexando o XML de testes nesta postagem caso alguém queira dar uma olhada Minha rotina está assim neste momento: //================================================================= static function testa_envio() LOCAL strXml := "" local strret cResposta = "" sUser := "teste" sPassword := "Eu92KAQ10p79VPu7t87X" cWebService := "https://hom.crdc.com.br:8443/api/formalizacao/v1?wsdl/" aaa = curdrive() + ":\" + ALLTRIM(CURDIR()) + "\" warquivo = aaa + "arquivoxmlcrdc.xml" oTxt := TTxtFile():New( warquivo ) nLinhas := oTxt:nTLines oTxt:Gotop() cLinha := oTxt:cLine for x=1 to nlinhas cLinha += alltrim(oTxt:cLine) oTxt:Skip(1) next oTxt:Close() sconteudo = cLinha // <<<<<====== conteúdo do XML que será passado //============================================================== // rotina sugerida no fórum //1) Criar o servidor Try oServer := CreateObject("Msxml2.ServerXMLHTTP") Catch MsgInfo( 'Erro na Criação do Serviço' ) RETURN NIL End //2) Abrir o servidor oServer:Open( "POST", cWebService, .F. ) //3) Adicionar o request header oServer:SetRequestHeader("Content-Type","application/json") oServer:SetRequestHeader( "Username" , "&sUser") oServer:SetRequestHeader( "Password" , "&sPassword") msginfo(oServer:readyState) //<<<<<<====== voltou com status = 1 try oServer:Send( sConteudo ) // <<<<<======= envia o XML While oServer:readyState != 4 // <<<<<======= nem entrou aqui.. já saiu pelo catch oServer:WaitForResponse(500) end cResposta := oServer:responseText // <<<<<======= resposta do webservice msginfo(cresposta) catch MsgInfo( 'Erro no Send' ) end Return .t. arquivoxmlCRDC.xml Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 6, 2019 Report Share Posted May 6, 2019 Esta senha está correta? Quote Link to comment Share on other sites More sharing options...
Van Posted May 6, 2019 Author Report Share Posted May 6, 2019 Esta senha está correta? Sim... Usuário e senha que foram usados na homologação... Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 6, 2019 Report Share Posted May 6, 2019 Deveria retornar isso? Quote Link to comment Share on other sites More sharing options...
Van Posted May 6, 2019 Author Report Share Posted May 6, 2019 Deveria retornar isso? Exatamente... Então o problema não está na rotina e sim no ambiente... O que pode estar interferindo para que eu não consiga mandar o arquivo ??? em todas as máquinas que testei obtive o erro... Van´s case... rs... Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 6, 2019 Report Share Posted May 6, 2019 Veja se acha o erro... noisemaupraxuxu... kkkkkkkkkkkkkkk #include "fivewin.ch" FUNCTION testa_envio() LOCAL CRESPOSTA, SUSER, SPASSWORD, CWEBSERVICE, WARQUIVO, OTXT, NLINHAS LOCAL CLINHA, X, AAA, SCONTEUDO, OSERVER LOCAL strXml := "" LOCAL strret cResposta := "" sUser := "teste" sPassword := "Eu92KAQ10p79VPu7t87X" cWebService := "https://hom.crdc.com.br:8443/api/formalizacao/v1?wsdl/" // aaa = curdrive() + ":\" + ALLTRIM(CURDIR()) + "\" // erro aaa := CurDrive() + ":\" + CurDir( CurDrive() ) + "\" // ? aaa warquivo := aaa + "arquivoxmlcrdc.xml" IF FILE( warquivo ) // NADA A FAZER ELSE ? "CADE O ARQUIVO VAN?", aaa, wArquivo RETURN NIL ENDIF oTxt := TTxtFile():New( warquivo ) nLinhas := oTxt:nTLines oTxt:Gotop() cLinha := oTxt:cLine FOR x = 1 TO nlinhas cLinha += alltrim( oTxt:cLine ) oTxt:Skip( 1 ) NEXT oTxt:Close() sconteudo = cLinha // <<<<<====== conteúdo do XML que será passado //============================================================== // rotina sugerida no fórum //1) Criar o servidor Try oServer := CreateObject( "Msxml2.ServerXMLHTTP" ) Catch MsgInfo( 'Erro na Criação do Serviço' ) RETURN NIL End //2) Abrir o servidor oServer:Open( "POST", cWebService, .F. ) //3) Adicionar o request header oServer:SetRequestHeader( "Content-Type", "application/json" ) oServer:SetRequestHeader( "Username" , "&sUser" ) oServer:SetRequestHeader( "Password" , "&sPassword" ) msginfo( oServer:readyState ) //<<<<<<====== voltou com status = 1 try oServer:Send( sConteudo ) // <<<<<======= envia o XML WHILE oServer:readyState != 4 // <<<<<======= nem entrou aqui.. já saiu pelo catch oServer:WaitForResponse( 500 ) end cResposta := oServer:responseText // <<<<<======= resposta do webservice msginfo( cresposta ) catch MsgInfo( 'Erro no Send' ) end RETURN( .T. ) // FIM - By kapiaba da peste. kkkkkkkkkkkkkkkkkkkkkkk Quote Link to comment Share on other sites More sharing options...
Van Posted May 6, 2019 Author Report Share Posted May 6, 2019 Veja se acha o erro... noisemaupraxuxu... kkkkkkkkkkkkkkk #include "fivewin.ch" FUNCTION testa_envio() LOCAL CRESPOSTA, SUSER, SPASSWORD, CWEBSERVICE, WARQUIVO, OTXT, NLINHAS LOCAL CLINHA, X, AAA, SCONTEUDO, OSERVER LOCAL strXml := "" LOCAL strret cResposta := "" sUser := "teste" sPassword := "Eu92KAQ10p79VPu7t87X" cWebService := "https://hom.crdc.com.br:8443/api/formalizacao/v1?wsdl/" // aaa = curdrive() + ":\" + ALLTRIM(CURDIR()) + "\" // erro aaa := CurDrive() + ":\" + CurDir( CurDrive() ) + "\" // ? aaa warquivo := aaa + "arquivoxmlcrdc.xml" IF FILE( warquivo ) // NADA A FAZER ELSE ? "CADE O ARQUIVO VAN?", aaa, wArquivo RETURN NIL ENDIF oTxt := TTxtFile():New( warquivo ) nLinhas := oTxt:nTLines oTxt:Gotop() cLinha := oTxt:cLine FOR x = 1 TO nlinhas cLinha += alltrim( oTxt:cLine ) oTxt:Skip( 1 ) NEXT oTxt:Close() sconteudo = cLinha // <<<<<====== conteúdo do XML que será passado //============================================================== // rotina sugerida no fórum //1) Criar o servidor Try oServer := CreateObject( "Msxml2.ServerXMLHTTP" ) Catch MsgInfo( 'Erro na Criação do Serviço' ) RETURN NIL End //2) Abrir o servidor oServer:Open( "POST", cWebService, .F. ) //3) Adicionar o request header oServer:SetRequestHeader( "Content-Type", "application/json" ) oServer:SetRequestHeader( "Username" , "&sUser" ) oServer:SetRequestHeader( "Password" , "&sPassword" ) msginfo( oServer:readyState ) //<<<<<<====== voltou com status = 1 try oServer:Send( sConteudo ) // <<<<<======= envia o XML WHILE oServer:readyState != 4 // <<<<<======= nem entrou aqui.. já saiu pelo catch oServer:WaitForResponse( 500 ) end cResposta := oServer:responseText // <<<<<======= resposta do webservice msginfo( cresposta ) catch MsgInfo( 'Erro no Send' ) end RETURN( .T. ) // FIM - By kapiaba da peste. kkkkkkkkkkkkkkkkkkkkkkk bad boy... rs Mas, o arquivo está lá no diretório, e o #include está no programa principal... Acabei de printar o conteúdo a ser enviado antes do send()... Ou é alguma outra coisa que eu não vi??? aiai... rs... Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 6, 2019 Report Share Posted May 6, 2019 ??? Van baixe o meu fonte, salve no \samples\VAN.PRG e o arquivo.xml, compile BUILDX VAN, se não funcionar, terás que atualizar teu FIVEWin para uma versão mais recente. Quote Link to comment Share on other sites More sharing options...
Van Posted May 6, 2019 Author Report Share Posted May 6, 2019 Oi, Kapiaba e Sistem... Muito obrigada pela imensa boa vontade em me ajudar... O programa já funcionou antes, então acredito que o problema não esteja na versão do fivewin... Vou batalhar um pouco mais na questão do ambiente e suas atualizações... Vocês são gente muito boa... obrigada mesmo... e vamos deixar a rotina aí pro caso de alguém precisar... Quote Link to comment Share on other sites More sharing options...
Van Posted May 7, 2019 Author Report Share Posted May 7, 2019 Rapazes, bom dia ! Grata pelas sugestões e dicas Quote Link to comment Share on other sites More sharing options...
Ricardo Posted May 21, 2019 Report Share Posted May 21, 2019 Até ontem estava com mesmo problema, no momento a coisa funcionava e em outro não. Procurei em foruns e buscas pela net, e nada. Então, foquei em não resolver a falha no fonte, mesmo porque funcionava! E ai procurei o problema na origem, ou seja, o que poderia causar um mau funcionamento do serverXMLHTTP. Fiz uma passo-a-passo que no meu caso resolveu. Espero ajudar á aqueles que estão com a mesma dificuldade. Resolvendo falha de comunicação serverXMLHTTP_.doc aferra 1 Quote Link to comment Share on other sites More sharing options...
Van Posted May 21, 2019 Author Report Share Posted May 21, 2019 Até ontem estava com mesmo problema, no momento a coisa funcionava e em outro não. Procurei em foruns e buscas pela net, e nada. Então, foquei em não resolver a falha no fonte, mesmo porque funcionava! E ai procurei o problema na origem, ou seja, o que poderia causar um mau funcionamento do serverXMLHTTP. Fiz uma passo-a-passo que no meu caso resolveu. Espero ajudar á aqueles que estão com a mesma dificuldade. Resolvendo falha de comunicação serverXMLHTTP_.doc Oi, Ricardo, boa tarde ! Agradeço pela resposta. Finalmente localizamos o problema no meu cliente. A empresa que fará a assinatura, havia me passado a informação errada, de que essa porta 8443 do webservice, não checava a certificação, por ser uma porta para testes, portanto, não achamos que o problema poderia estar aí. Ao limpar os certificados expirados e deixar somente os certificados válidos, tudo começou a funcionar conforme o esperado. Agradeço as orientações, paciência e sugestões de todos. kapiaba 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.