Página 1 de 1
NFSe - IPM _ Pinhais/PR
Enviado: 29 Nov 2021 14:42
por toya
Preciso de uma ajuda na transcrição HTTP (Postman) para o Harbour:
Ambiente Homologação
Código: Selecionar todos
POST /atende.php?pg=rest&service=WNERestServiceNFSe&cidade=migra_pinhais HTTP/1.1
Host: treinamento.atende.net
Authorization: Basic MDkyNDczNDMwMDAxMjA6SXBtQDIwMjE=
Cookie: PHPSESSID=7pf56uromi3p4vnrj64mi264a1; cidade=migra_pinhais
Content-Length: 222
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="XML"; filename="/E:/JOBs/NFSe/xml_teste/S_NS9_000000001-nfSe.xml"
Content-Type: text/xml
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Código: Selecionar todos
cFile := "E:\JOBs\NFSe\xml_teste\S_NS9_000000001-nfSe.xml"
doc := CreateObject( "MSXML2.DOMDocument" )
oHTTP := CreateObject( "MSXML2.XMLHTTP" )
oHTTP:Open( "POST" , cUrl, .f. )
oHTTP:SetRequestHeader( "Content-Type" , "text/xml" )
oHTTP:SetRequestHeader( "Authorization" , "Basic " + cBasic )
oHTTP:SetRequestHeader( "Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" )
oHTTP:SetRequestHeader( "Content-Disposition", 'form-data; name="XML"; filename=' + cFile )
http:Send()
Estou obtendo o seguinte retorno:
Código: Selecionar todos
<?xml version="1.0" encoding="ISO-8859-1"?>
<retorno>
<mensagem>
<codigo>9999 - Arquivo XML da Nota Fiscal de Servi?Eletr?a n?enviado!</codigo>
</mensagem>
</retorno>
NFSe - IPM _ Pinhais/PR
Enviado: 29 Nov 2021 18:58
por frazato
Tarde!
Utilizo assim, e funciona para json, talvez ajude em alguma coisa!
Frazato
Código: Selecionar todos
//------------------------------------------------------------------------------------
Static Function CarregaDMOfertas(cArqJson)
Local i
*Local Url := 'http://api.appsoumais.dmcardweb.com.br/api/OfertaAutomatica/CreatOferta'
*Local cToken := "e53064akddkdçaslfklçlçafsakdflçsadfkfdk07"
Local Url := Lerparam('DMOFERTA_URL_CRIAR_CIA')
Local cToken := Lerparam('DMOFERTA_TOKEN')
Local cRetorno :=''
CENTRA(24,"Aguarde...Publicando ofertas no APP da DMOFERTAS!")
* xmldoc = CREATEOBJECT("MSXML2.SERVERXMLHTTP")
xmldoc = CREATEOBJECT("MSXML2.ServerXMLHTTP.5.0")
xmldoc:setTimeouts(1000*60, 1000*60, 0, 0)
xmldoc:open("POST", url, .f.)
xmldoc:SetRequestHeader( "Content-Type", "application/json;charset=utf-8" )
xmldoc:SetRequestHeader( "token" , cToKen )
xmldoc:SetRequestHeader( "Connection", "Keep-Alive" )
*xmldoc:setTimeouts(1000*60, 1000*60, 0, 0)
//-- Montando o Xml pra consulta exemplo do conteudo da matriz a popular o json
* cListaItens := {}
//codigo EAN 3-descricao 4-estq 5-norma 6-oferta 7-dmoferta
* Aadd(cListaItens,{'50136','7896185310576','CREME LEITE SHEFA TP 200G',100 ,2.99 ,2.79,2.49 })
* Aadd(cListaItens,{'06776','7894900031515','REFRIGERANTE FANTA 2L' ,100 ,5.49 ,4.99,4.89 })
* Aadd(cListaItens,{'58435','7891150064317','DETERGENTE PO OMO 800GR' ,100 ,9.49 ,8.78,8.49 })
* Aadd(cListaItens,{'39655','8712000025649','BARRIL HEINEKEN 5L' ,100 ,84.90 ,79.90,78.90 })
Texto := cArqJson
lErroEnvio := .f.
Try
xmldoc:send(Texto)
Catch oError
CRLF := ''
cErrorTmp :="Error: " + Transform(oError:GenCode, nil) + CRLF +;
"SubC: " + Transform(oError:SubCode, nil) + CRLF +;
"OSCode: " + Transform(oError:OsCode, nil) + CRLF +;
"SubSystem: " + Transform(oError:SubSystem, nil) + CRLF +;
"Mensagem: " + oError:Description
Alerta("Erro ao chamar metodo SEND de HttpRequest (Registro envio)"+chr(10)+cErrorTmp )
lErroEnvio := .t.
End
If lErroEnvio == .t.
Return cErrorTmp
Endif
DO WHILE xmldoc:readyState <> 4
MILLISEC(1000)
ENDDO
Linha :=xmldoc:responseText
Linha2:=xmldoc:ResponseBody()
MemoWrit(mTemporal+'revisao2.txt',Linha2)
MemoWrit(mTemporal+'revisao1.txt',Linha )
*Alerta(Linha)
*Alerta(Linha2)
cRetornoDM :=["code":1}]
cRetorno := cRetornoDM
NFSe - IPM _ Pinhais/PR
Enviado: 30 Nov 2021 08:54
por toya
Frazato...
Mui grato...
Mas no caso, ele está autenticando.
Apenas não está anexando/enviando o arquivo...
NFSe - IPM _ Pinhais/PR
Enviado: 30 Nov 2021 09:10
por Jairo Maia
Olá Pessoal,
toya escreveu:Apenas não está anexando/enviando o arquivo...
Não entendo nada do que vocês estão discutindo aqui, mas com base nessa declaração vou fazer uma pergunta:
Isso está correto?:
Código: Selecionar todos
filename="/E:/JOBs/NFSe/xml_teste/S_NS9_000000001-nfSe.xml"
É essa barra no início do caminho que questiono.
E aqui:
Código: Selecionar todos
cFile := "E:\JOBs\NFSe\xml_teste\S_NS9_000000001-nfSe.xml"
Aqui está no formato Windows, e a anterior no formato Linux.
Desculpem se a pergunta foi idiota.
NFSe - IPM _ Pinhais/PR
Enviado: 30 Nov 2021 10:42
por toya
Jairo, já testei nas duas formas...
NFSe - IPM _ Pinhais/PR
Enviado: 30 Nov 2021 12:31
por Kapiaba
Também não estou te entendendo, seja mais específico. E para pegar esse diretório imenso, você está usando o:
??
Regards, saludos.
NFSe - IPM _ Pinhais/PR
Enviado: 05 Dez 2021 17:59
por rochinha
Amiguinhos,
Faltou?
Código: Selecionar todos
oHTTP:Send( memoread( "E:/JOBs/NFSe/xml_teste/S_NS9_000000001-nfSe.xml" ) )
Notei que no código você cria o objeto na variável
oHTTP
Mas no seu código está
http:
Se não deu erro nesta linha é porque a variável
http está publicizada no geral.
NFSe - IPM _ Pinhais/PR
Enviado: 14 Jan 2022 13:35
por toya
Aos interessados...
Como consegui resolver...
Mui grato aos colegas...
Código: Selecionar todos
cBase64 := alltrim( hDados["login"] ) + ":" + alltrim( hDados["senha"] )
cBasic := alltrim( HB_Base64Encode( cBase64, len( cBase64 ) ) )
cBasic := strtran( cBasic, CRLF, "" )
cXmlFile := memoread(cFile)
oHTTP := CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
oHttp:Open("POST", cUrl, .f. )
oHTTP:SetRequestHeader( "Authorization", "Basic " + cBasic )
oHTTP:SetRequestHeader( "Host", cHost )
oHTTP:SetRequestHeader( "Content-Type", "multipart/form-data; boundary=" + cBoundary )
cTexto := '--'
cTexto += cBoundary
cTexto += CRLF
cTexto += 'Content-Disposition: form-data; name="XML"; filename="'+cFile+'"'
cTexto += CRLF
cTexto += 'Content-Type: application/xml'
cTexto += CRLF
cTexto += CRLF
cTexto += cXmlFile
cTexto += CRLF
cTexto += CRLF
cTexto += '--'
cTexto += cBoundary
cTexto += '--'
oHttp:Send( cTexto )
cRet := oHttp:ResponseText