NFS-E CONFIGURACAO HTTPWEBREQUEST

 Tópico anterior Próximo tópico Novo tópico

NFS-E CONFIGURACAO HTTPWEBREQUEST

C#

 Compartilhe  Compartilhe  Compartilhe
#497246 - 19/06/2021 23:11:53

IVANDGT100
BELO HORIZONTE
Cadast. em:Abril/2014


Olá  colegas!
Estou com dificuldades para configurar o 'HttpWebRequest' para comunicar com a prefeitura de Belo Horizonte (bhissdigital).
Estou tentando o serviço soapAction='http://ws.bhiss.pbh.gov.br/ConsultarNfse' e sempre obtenho a resposta 'An error occurred while sending the request.'
A url é 'https://bhissdigital.pbh.gov.br:443/bhiss-ws/nfse'.
Alguém já teve este problema ou similar?
Agradeço qualquer ajuda!
Ivan.


Gentileza gera Gentileza - Profeta Gentileza


#497258 - 22/06/2021 13:10:21

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Boa tarde!

Dificil apenas com essas informações. Se fosse para chutar, eu diria que é porque você não tá passando um certificado digital válido.

Tenta dar um catch no Exception e ver os detalhes (caso não consiga, tente dar um Cast para um WebResponse para conseguir facilitar). Se puder mostrar o código que está usando também ajudaria.

Att,

Não nasci pra programar, mas preciso me alimentar...


#497260 - 22/06/2021 13:51:35

IVANDGT100
BELO HORIZONTE
Cadast. em:Abril/2014


Boa tarde DS2T! Obrigado pela resposta!
O certificado do cliente está operante pois consigo acessar o portal e abrir o webservice.
Também está habilitado para emissão de nfs-e por hoje ele utilizar um software próprio.
Creio que meu erro está em configurar o HttpWebRequest ou o xml enviado para a prefeitura...
Abaixo anexo o xml e as rotinas! Se você poder me ajudar eu agradeço muito!
O xml eu reformatei apenas para facilitar a leitura, o arquivo enviado (testei via soapUI) possui a mensagem como string!

****
****xml soap
****
<?xml version='1.0' encoding='UTF-8'?>
<s:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema'
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
    xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
    <s:Body>
        <ns2:ConsultarNfseRequest xmlns:ns2='http://ws.bhiss.pbh.gov.br'>
            <nfseCabecMsg>
                <cabecalho versao='1.00' xmlns='http://www.abrasf.org.br/nfse.xsd'>
                    <versaoDados>1.00</versaoDados>
                </cabecalho>
            </nfseCabecMsg>
            <nfseDadosMsg>
                <ConsultarNfseEnvio xmlns='http://www.abrasf.org.br/nfse.xsd'>
                    <Prestador>
                        <Cnpj>**************</Cnpj>
                        <InscricaoMunicipal>***********</InscricaoMunicipal>
                    </Prestador>
                    <NumeroNfse>202100000000782</NumeroNfse>
                    <PeriodoEmissao>
                        <DataInicial>2021-06-16</DataInicial>
                        <DataFinal>2021-06-16</DataFinal>
                    </PeriodoEmissao>
                </ConsultarNfseEnvio>
            </nfseDadosMsg>
        </ns2:ConsultarNfseRequest>
    </s:Body>
</s:Envelope>

****
****rotinas
****
        public string QxHttp2(XmlNode xml, string url)
        {
            try
            {
                ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

                gret = string.Empty;
                gsoap = xml.OuterXml;
                gsoap = new FcFile().Qread4(@'c:\hdxTmp\soap1.xml');            //arquivo xml (via utilitario soapUI passa ok)
                int len1 = Encoding.ASCII.GetBytes(gsoap).Length;
                QxCfg(url);

                Stream reqStream = ghttpWR.GetRequestStream();
                StreamWriter streamWriter = new StreamWriter(reqStream);
                streamWriter.Write(gsoap, 0, Encoding.ASCII.GetBytes(gsoap).Length);
                streamWriter.Close();

                WebResponse webResponse = ghttpWR.GetResponse();
                Stream respStream = webResponse.GetResponseStream();
                StreamReader streamReader = new StreamReader(respStream);

                gret = streamReader.ReadToEnd();
                gds = new FcXml().Qdset(gret);
                gret.QpXml().QpArqTxt(gfil);
                return gret;
            }
            catch (WebException ex)
            {
                string s1 = url;
                string s3 = '';
                if (ex.InnerException != null) s3 = ex.InnerException.Message;          //210117

                if (ex.Response == null) new FcDic().Qthrow('web.200', s3);
                using (var stream = ex.Response.GetResponseStream())
                using (var reader = new StreamReader(stream))
                {
                    //Console.WriteLine(reader.ReadToEnd());
                    string s2 = reader.ReadToEnd();
                    new FcDic().Qthrow('web.200', s2);
                }
                throw;
            }
        }

****
****
****
        public void QxCfg(string url1)
        {
            url1 = 'https://bhissdigital.pbh.gov.br/bhiss-ws/nfse';                     //apenas p/exemplo

            ghttpWR = (HttpWebRequest)WebRequest.Create(url1);                        

            ghttpWR.PreAuthenticate = true;
            ghttpWR.ServicePoint.Expect100Continue = false;                            
            ghttpWR.CookieContainer = new CookieContainer();
            ghttpWR.Timeout = 30000;

            ghttpWR.Headers.Add('SOAPAction: 'http://ws.bhiss.pbh.gov.br/ConsultarNfse'');
            ghttpWR.ContentType = 'application/soap+xml;charset=utf-8';
            ghttpWR.Method = WebRequestMethods.Http.Post;                              
            ghttpWR.Accept = 'text/xml';

            ghttpWR.KeepAlive = true;
            ghttpWR.Credentials = CredentialCache.DefaultCredentials;
            ghttpWR.ClientCertificates.Add(gcer);
            ghttpWR.UseDefaultCredentials = true;                                          

            ghttpWR.ContentLength = Encoding.ASCII.GetBytes(gsoap).Length;
            ghttpWR.Proxy = WebRequest.GetSystemWebProxy();
            ghttpWR.SendChunked = false;                                                    
        }



Gentileza gera Gentileza - Profeta Gentileza


#497262 - 22/06/2021 14:20:38

IVANDGT100
BELO HORIZONTE
Cadast. em:Abril/2014


 Anexos estao visíveis somente para usuários registrados

As telas com as mensagens:


Gentileza gera Gentileza - Profeta Gentileza


#497263 - 22/06/2021 14:25:12

IVANDGT100
BELO HORIZONTE
Cadast. em:Abril/2014


 Anexos estao visíveis somente para usuários registrados

imagem 2



Gentileza gera Gentileza - Profeta Gentileza


Resposta escolhida #497264 - 22/06/2021 14:49:32

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
'The read operation failed, see inner exception'. Veja o que tem na InnerException. Tem uma 'flechinha' lá, clica nela expande.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#497265 - 22/06/2021 15:04:44

IVANDGT100
BELO HORIZONTE
Cadast. em:Abril/2014


 Anexos estao visíveis somente para usuários registrados

Obrigado ao senhor também Mestre Kerplunk!
Ao expandir o InnerException apresentou esta imagem:

Gentileza gera Gentileza - Profeta Gentileza


#497266 - 22/06/2021 16:24:04

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Pois é, a mensagem é 'As credenciais fornecidas para o pacote não foram reconhecidas'. Quer dizer que ou o seu login está errado ou seu pacote não está formado corretamente.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#497267 - 22/06/2021 16:25:12

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Além disso, se é um serviço SOAP, você deveria usar uma referência web e não mandar pacote dessa forma.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#497268 - 22/06/2021 17:48:28

IVANDGT100
BELO HORIZONTE
Cadast. em:Abril/2014


 Anexos estao visíveis somente para usuários registrados

Mestre Kerplunk, o arquivo que está sendo enviado (soap) pela rotina, eu enviei através do utilitário SuapUI.
A prefeitura respondeu ao SuapUI, com os dados corretos.
Quando  senhor fala 'usar uma referência web', o senhor poderia exemplificar? postar um exemplo?
Obrigado Mestre!
Abaixo anexo a tela com o retorno do SoapUi.



Gentileza gera Gentileza - Profeta Gentileza


#497269 - 22/06/2021 18:13:52

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Aqui, tem um bem simples

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por IVANDGT100 em 11/07/2021 15:06:16