[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
André Cabral
Criador André Cabral 23/04/2020

Boa tarde Carlos Ferreira e demais devs.

Como podemos fazer um post com XML no flutter ?

 

Segue documentação do endpoint:

https://ssw.inf.br/ws/sswColeta/help.html

 

 

Manager Carlos Ferreira 23/04/2020

Olá, André!
Tudo bem?

Comunicação com XML é bem ruim de lidar (padrão antigo, arcaico) :/

Pode usar esse package aqui, dê uma olhada https://pub.dev/packages/xml

Carlos Ferreira
Criador André Cabral 23/04/2020

Pelo que analisei os parametros tem que sereem enviados para: https://ssw.inf.br/ws/sswColeta/index.php?wsdl

e o retorno gera um XML, porém dá um erro :

 


import 'dart:convert';
import 'package:http/http.dart' as http;




void main() async {
test();
}

Future<http.Response> test() async {
  return http.post(
    'https://ssw.inf.br/ws/sswColeta/index.php?wsdl',
    headers: <StringString>{
      'Content-Type': 'application/json; charset=UTF-8',
    },
    body: jsonEncode(<StringString>{
            "dominio": "LUZ",
            "login": "LUZ",
            "senha": "123456",
            "cnpjRemetente": "058098498426",
            "cnpjDestinatario": "058098498426",
            "numeroNF": "0001",
            "tipoPagamento": "D",
            "enderecoEntrega": "Severinho Catanho 134",
            "cepEntrega": "57307200",
            "solicitante": "André",
            "limiteColeta": "2016-01-30T09:45:00",
            "quantidade": "10",
            "peso": "250.0",
            "observacao": "Alguma observação aqui",
            "instrucao": "Alguma instrução aqui",
            "cubagem": "450.0",
            "valorMerc": "100.0",
            "especie": "001",
    }),
  );
  
}

Error -32601 received from application: Method not found

 

 

André Cabral
Criador André Cabral 23/04/2020

Carlos, o melhor que consegui, porém não estou sabendo montar o xml com soap, alguma dica?

//documentação: https://ssw.inf.br/ws/sswColeta/help.html


//CODE


import 'dart:convert'; import 'dart:io'; import 'package:xml/xml.dart' as xml; import 'package:http/http.dart' as http;

void
main() async { String soap = ''' <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <soap:Body> <coletar> <part> <dominio>luz</dominio> </part> <part> <login>"user"</login> </part> <part> <senha>"123456"</senha> </part> <part> <cnpjRemetente>"000.000.000-00"</cnpjRemetente> </part> <part> <cnpjDestinatario>"000.000.000-00"</cnpjDestinatario> </part> <part> <numeroNF>"123456"</numeroNF> </part> <part> <tipoPagamento>"D"</tipoPagamento> </part> <part> <enderecoEntrega>"Av Norte 1345"</enderecoEntrega> </part> <part> <cepEntrega>"578888-999"</cepEntrega> </part> <part> <solicitante>"Ricardo"</solicitante> </part> <part> <limiteColeta>"20-05-2020"</limiteColeta> </part> <part> <quantidade>"10"</quantidade> </part> <part> <peso>"10"</peso> </part> <part> <observacao>"nenhuma"</observacao> </part> <part> <cubagem>"30"</cubagem> </part> <part> <valorMerc>"50"</valorMerc> </part> <part> <especie>"não especificado"</especie> </part> </coletar> </soap:Body> </soap:Envelope> '''; postOTP("https://ssw.inf.br/ws/sswColeta/index.php", soap); }

 

DOCUMENTAÇÃO: https://ssw.inf.br/ws/sswColeta/help.html


        Future<String> postOTP(String _uri, String _message) async {

      HttpClient client = new HttpClient();
      HttpClientRequest request = await client.postUrl(Uri.parse(_uri));
      request.write(_message);
      HttpClientResponse response = await request.close();
      StringBuffer _buffer = new StringBuffer();
      await for (String a in await response.transform(utf8.decoder)) {
        _buffer.write(a);
      }

      print("_buffer.toString: ${_buffer.toString()}");
      return _buffer.toString();
    }
André Cabral
Manager Carlos Ferreira 23/04/2020

Olá, André!
Tudo bem?

Você tem o projeto no GitHub?

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!