syspel Posted February 16 Report Share Posted February 16 ola pessoal preciso de mandar estas informacao para um api tenho esse exemplo abaixo mais as informacao nao chega la na pagina alguem pode ajudar aonde estou errando neste script o api e post obrigado pela ajuda #Include "Fivewin.ch" //-------------------------------- function main() local pCpf := "99999999999" local pCnpj := "08124858000100" local pNome := "joao carlos" local pArquivo := ".\func0001.JPG" local cRetorno := "" cRetorno := fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo ) SysRefresh() MsgInfo( cRetorno ) MemoWrit(".\carlos.txt", cRetorno ) return .t. *------------------------------------------------------------------------------* *------------------------------------------------------------------------------* * Analista : maniel * * Objetivo : Enviar Arquivo *------------------------------------------------------------------------------* Function fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo ) Local oHttp , cTexto :="" Try oHttp := CreateObject( 'MSXML2.XMLHTTP' ) Catch oHttp := CreateObject( 'Microsoft.XMLHTTP' ) End oHttp:Open( 'POST', "https://api-fpm.syspel.com.br/api/recibos/", .F. ) cTexto := '{ ' cTexto += '"id_client": ' +pCpf cTexto += '"id_company": ' +pCnpj cTexto += '"Id_employee": '+pNome cTexto += '"File": ' +pArquivo cTexto += ' }' try oHttp:Send( cTexto ) catch MsgInfo( "Erro no processo post:" + oHttp:lastErrorMessage()) end Return oHttp:ResponseBody *------------------------------------------------------------------------------* carlos Syspel bcc 730 fwh2111 dbfs cloud Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 16 Report Share Posted February 16 #include "Fivewin.ch" FUNCTION Main() LOCAL pCpf := "99999999999" LOCAL pCnpj := "08124858000100" LOCAL pNome := "joao carlos" LOCAL pArquivo := ".\func0001.JPG" // LOCAL pArquivo := ".\LOGO.jpg" LOCAL cRetorno := "" cRetorno := fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo ) MsgInfo( cRetorno ) MemoWrit( ".\carlos.txt", cRetorno ) RETURN NIL // .T. // ------------------------------------------------------------------------------* // Analista : maniel // // Objetivo : Enviar Arquivo // ------------------------------------------------------------------------------* FUNCTION fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo ) LOCAL oHttp, cTexto := "" #IFDEF __XHARBOUR__ // xHarbour Try oHttp:= CreateObject( "MSXML2.ServerXMLHTTP.6.0" ) Catch MsgInfo('Erro na Criação do Serviço!', 'xHarbour: Atenção!') Return Nil End #ELSE Try oHttp:= win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0") Catch MsgInfo('Erro na Criação do Serviço!', 'Harbour: Atenção!') Return Nil End #ENDIF TRY oHttp:Open( 'POST', "https://api-fpm.syspel.com.br/api/recibos/", .F. ) cTexto := '{ ' cTexto += '"id_client": ' + pCpf cTexto += '"id_company": ' + pCnpj cTexto += '"Id_employee": ' + pNome cTexto += '"File": ' + pArquivo cTexto += ' }' oHttp:Send( cTexto ) CATCH MsgInfo( "Erro no processo post:" + oHttp:lastErrorMessage() ) END RETURN( oHttp:ResponseBody ) // FIN / END Regards, saludos. teste assim e reporte erros, pls. Quote Link to comment Share on other sites More sharing options...
sygecom Posted February 17 Report Share Posted February 17 Visualmente parece que seu JSON está faltando virgulas, tente gerar o JSON e valida nesse site: https://jsonlint.com/ cTexto := '{ ' cTexto += '"id_client": ' + pCpf +"," cTexto += '"id_company": ' + pCnpj+"," cTexto += '"Id_employee": ' + pNome+"," cTexto += '"File": ' + pArquivo cTexto += ' }' Quote Link to comment Share on other sites More sharing options...
syspel Posted February 19 Author Report Share Posted February 19 Application =========== Path and name: C:\api\carlo.exe (32 bits) Size: 4,367,360 bytes Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20200226) FiveWin version: FWH 21.11 C compiler version: Borland/Embarcadero C++ 7.3 (32-bit) Windows version: 6.1, Build 7601 Service Pack 1 Time from start: 0 hours 0 mins 1 secs Error occurred at: 02/19/24, 09:46:10 Error description: Error MSXML2.ServerXMLHTTP.6.0/3 DISP_E_MEMBERNOTFOUND: LASTERRORMESSAGE Args: Stack Calls =========== Called from: => TOLEAUTO:LASTERRORMESSAGE( 0 ) Called from: carlo.prg => FENVIAARQUIVO( 70 ) Called from: carlo.prg => AVPI102( 12 ) System ====== CPU type: Intel(R) Core(TM)2 Duo CPU E7300 @ 2.66GHz 2666 Mhz Hardware memory: 3318 megs Free System resources: 90 % GDI resources: 90 % User resources: 90 % Windows total applications running: 7 1 , 2 , C:\Windows\system32\SHLWAPI.dll 3 Altern�ncia de tarefas, C:\api\jair.exe 4 DDE Server Window, C:\Windows\system32\OLE32.DLL 5 GDI+ Window, C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.24542_none_5c0717c7a00ddc 6 MCI command handling window, C:\Windows\system32\WINMM.DLL 7 Program Manager, C:\Windows\system32\SHELL32.dll Variables in use ================ Procedure Type Value ========================== TOLEAUTO:LASTERRORMESSAGE Local 1: U Local 2: C "MSXML2.ServerXMLHTTP.6.0" FENVIAARQUIVO Param 1: C "99999999999" Param 2: C "08124858000100" Param 3: C "joao carlos" Param 4: C ".\func0001.JPG" Local 1: O Class: TOLEAUTO Local 2: C "{ "id_client": 99999999999"id_company": 08124858000100"Id_employee": joao carlos"File": .\func0001.JPG }" Local 3: U Local 4: U Local 5: U Local 6: C "Erro no processo post:" AVPI102 Local 1: C "99999999999" Local 2: C "08124858000100" Local 3: C "joao carlos" Local 4: C ".\func0001.JPG" Local 5: C "" Linked RDDs =========== DBF DBFFPT DBFBLOB DBFCDX DBFNTX DataBases in use ================ Classes in use: =============== 1 ERROR 2 HASHENTRY 3 HBCLASS 4 TOLEAUTO 5 HBOBJECT 6 TREG32 7 TSTRUCT Memory Analysis =============== 685 Static variables Dynamic memory consume: Actual Value: 0 bytes Highest Value: 0 bytes obrigado Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 19 Report Share Posted February 19 Tente fazer imitando este exemplo, senão você tá laskado, vai ter que aprender a usar CURL(). // C:\FHH\SAMPLES\ADHEMAR3.PRG #include "fivewin.ch" Function Main() Local cJSon, cRespuesta := "", oSoap, cToken cToken:= "TokenApi eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJJUlJJQk9MSVZJQSIsImNvZGlnb1Npc3RlbWEiOiI3NzExNEIyMERGQTRBRkI0NDFCMjVGNyIsIm5pdCI6Ikg0c0lBQUFBQUFBQUFETTBNYlV3TURNd01nRUFJc2g0VUFrQUFBQT0iLCJpZCI6NDI5MDgsImV4cCI6MTY4ODA4MzIwMCwiaWF0IjoxNjg0Nzc4NzcxLCJuaXREZWxlZ2FkbyI6MTQ1ODA2MDI0LCJzdWJzaXN0ZW1hIjoiU0ZFIn0.EgEF0lslzpnGkuFE05LazGbsKSkH98yN9B6fch5AEHL0On-mFtmld-3GaGahjP5n76DIbP3HECuktFY3xQ6pjQ" // oSoap = CreateObject("MSXML2.ServerXMLHTTP.6.0") #ifdef __XHARBOUR__ Try Try oSoap := CreateObject( 'Microsoft.XMLHTTP' ) Catch oSoap := CreateObject( 'MSXML2.XMLHTTP' ) End Catch MsgInfo( 'Erro na Criação do Serviço' ) RETURN NIL End #else Try Try oSoap := win_OleCreateObject( 'MSXML2.XMLHTTP' ) Catch oSoap := win_OleCreateObject( 'Microsoft.XMLHTTP' ) End Catch MsgInfo( 'Erro na Criação do Serviço! Com Harbour', 'Atenção!' ) RETURN NIL End #endif cJson:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:siat="https://siat.impuestos.gob.bo/">'+CRLF cJson+='<soapenv:Header/>'+CRLF cJson+=' <soapenv:Body>'+CRLF cJson+=' <siat:cufd>'+CRLF cJson+=' <SolicitudCufd>'+CRLF cJson+=' <codigoAmbiente>2</codigoAmbiente>'+CRLF cJson+=' <codigoModalidad>1</codigoModalidad>'+CRLF cJson+=' <!--Optional:-->'+CRLF cJson+=' <codigoPuntoVenta>0</codigoPuntoVenta>'+CRLF cJson+=' <codigoSistema>77114B20DFA4AFB441B25F7</codigoSistema>'+CRLF cJson+=' <codigoSucursal>0</codigoSucursal>'+CRLF cJson+=' <cuis>3A5218DE</cuis>'+CRLF cJson+=' <nit>145806024</nit>'+CRLF cJson+=' </SolicitudCufd>'+CRLF cJson+=' </siat:cufd>'+CRLF cJson+=' </soapenv:Body>'+CRLF cJson+='</soapenv:Envelope>'+CRLF oSoap:Open( "POST","https://siat.impuestos.gob.bo/", .F. ) // oSoap:SetRequestHeader( "apikey", cToken ) oSoap:Send( cJson ) // cRespuesta:=oSoap:responseText IF oSoap:STATUS != 200 MsgStop( AllTrim( Str( oSoap:Status ) ) + " - " + oSoap:StatusText, "Erro" ) RETURN NIL ENDIF WHILE oSoap:ReadyState != 4 SYSREFRESH() oSoap:WaitForResponse( 1000 ) END // ? cRespuesta cRespuesta := oSoap:ResponseBody() IF FILE( "ADHEMAR.txt" ) ERASE ADHEMAR.txt ENDIF MemoWrit('ADHEMAR.txt', cRespuesta) return cRespuesta // FIN / END Regards, saludos. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 19 Report Share Posted February 19 eu acho, que este modo de programação, não funciona mais com I.E. ou google e sim, somente com WEBVIEW(Microsoft Edge), já vá se acostumando com CURL(), maior pé no $aco para eu dominar isso em xHarbour, leia desde o inicio para ver se entende esse "trem". https://forums.fivetechsupport.com/viewtopic.php?f=6&t=43685&hilit=curl&sid=cf863a9a2816ec56a1b3bea94fdbedae&start=60 Não me aprofundei, pois não uso, só queria tentar "dominar", não entendi muita coisa... kkkkk Regards, saludos. Quote Link to comment Share on other sites More sharing options...
emotta Posted February 19 Report Share Posted February 19 Veja se essa dúvida de 2021 ajuda (Veja a função callendpoint) https://fivewin.com.br/index.php?/topic/29816-consumir-api-sem-usar-curl-como-fazer/#comment-291213 Aqui tem o exemplo de uso https://fivewin.com.br/index.php?/topic/38012-busca-json-por-postman/#comment-303859 Quote Link to comment Share on other sites More sharing options...
syspel Posted March 14 Author Report Share Posted March 14 ola pessoal ainda nao consequi colocar um pdf no sint todos os exemplos que testei so da erros nao funciona que coisa,nao tem nada que funciona ? obrig carlos fwh2111 xharb 123 dbfs Quote Link to comment Share on other sites More sharing options...
emotta Posted March 18 Report Share Posted March 18 Carlos, o correto é solicitar um exemplo funcionado via CURL (linha de comando). É necessário entender os parametros e como vc envia o pdf (provavelmente em base64) Enfim, sem um exemplo funcionando fica dificil te ajudar. Veja que no seu exemplo vc está enviando um JPG e não um PDF e vc está colocando o caminho no arquivo e não o conteudo e mesmo se for o conteudo com certeza não é no formato binário e sim no formato base64. Quote Link to comment Share on other sites More sharing options...
syspel Posted March 26 Author Report Share Posted March 26 ola pessoal ja vasculei tudo e nao achei nada para comsumir um api,tentei curl so da erro falta o ch tem muita gente dizendo que funciou o deles mas nao vi nada que funciona testei todos os exemplo e nao funcioou e agora carlos fwh 2111 xharb 123 Quote Link to comment Share on other sites More sharing options...
emotta Posted March 26 Report Share Posted March 26 CURL é linha de comando, não tem como faltar .ch Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 28 Report Share Posted March 28 https://forums.fivetechsupport.com/viewtopic.php?f=16&t=33542&sid=5807002e359ddde737fe430a4263f000&start=135 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.