Post com XML
Criador
André Cabral
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
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
Criador
André Cabral
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: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
"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
Criador
André Cabral
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();
}
Manager
Carlos Ferreira
Olá, André!
Tudo bem?
Você tem o projeto no GitHub?
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!