ENVIAR ARQUIVO XML PARA WEBSERVICE.

SIDNEINARDO 01/10/2015 09:25:37
#452005
Ola.
Preciso enviar um arquivo xml para um webservice da mgm tributação.( http://fgmaiss.com.br/issqn/wservice/wsnfe.php/EnvNfe)

Sempre retorna um erro de Senha ou Usuário inválido.. Pelo excelente manual deles, pode ser também o cnpj... Claro que já verifiquei e esta tudo ok.
O suporte deles apenas respondem, que é algo errado no meu sistema.. ( eu sei disso só quero resolver.. ).
Mandei o xml para eles e disseram que está tudo ok.. conclusão: deve ser o meu Código de envio.

estou passando:
strUrl = [Ô]http://www.mgmtributacao.com.br/issqn/wservice/wsnfeenvia.php[Ô] [ô] coloquei também ?wsdl mas não resolveu..
strSoapAction = [Ô]http://www.mgmtributacao.com.br/issqn/wservice/wsnfeenvia.php/EnvNfe[Ô] [ô] coloquei também ?wsdl mas não resolveu..

S = [Ô]Conteúdo XML[Ô]

Chamo esta função para enviar o xml
vRet = PostWebservice(strUrl, strSoapAction, S)

a função acima eu peguei na net.

se alguém souber oque esta acontecendo, por favor me ajudem..

O único manual deles é em C#, mas não envia o xml e sim insere os dados direto no Ws, o qual fiz também mas dá erro, e claro o suporte lava as mãos..

Se alguém puder ajudar mesmo no c#, agradeço muio, se precisarem dos códigos para identificar meu erro, é só pedir.. obrigado.







TUNUSAT 01/10/2015 13:39:37
#452023
SIDNEINARDO,

====================================
Transmitir um arquivo xml por um Web Services
https://social.msdn.microsoft.com/Forums/pt-BR/6c44f9ea-5c5a-4315-ae82-a03ab03e940a/transmitir-um-arquivo-xml-por-um-web-services?forum=504
====================================
How to: Upload Files with FTP
https://msdn.microsoft.com/en-us/library/ms229715.aspx

using System;
using System.IO;
using System.Net;
using System.Text;

namespace Examples.System.Net
{
public class WebRequestGetExample
{
public static void Main ()
{
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create([Ô]ftp://www.contoso.com/test.htm[Ô]);
request.Method = WebRequestMethods.Ftp.UploadFile;

// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential ([Ô]anonymous[Ô],[Ô]janeDoe@contoso.com[Ô]);

// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader([Ô]testfile.txt[Ô]);
byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;

Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();

FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Console.WriteLine([Ô]Upload File Complete, status {0}[Ô], response.StatusDescription);

response.Close();
}
}
}
}

====================================
FTP component written with fully managed code
http://www.codeproject.com/dotnet/dotnetftp.asp
====================================
Diferenças de tipos de Web Service: (SOAP, REST, XML)
http://pt.stackoverflow.com/questions/11183/diferen%C3%A7as-de-tipos-de-web-service-soap-rest-xml
====================================
.NET - Criando Web Services - Cálculo IMC
http://www.macoratti.net/vbn_wbs2.htm
====================================
Consuming a Web Service .NET with VB6.0 App
http://www.codeproject.com/Articles/242475/Consuming-a-Web-Service-NET-with-VB-App
====================================
Integrating XML Web Services With VB6 Applications
http://www.drdobbs.com/web-development/integrating-xml-web-services-with-vb6-ap/184405550
====================================

[][ô]s,
Tunusat.
SIDNEINARDO 01/10/2015 14:10:19
#452029
Este exemplo foi em VB.net né??? eu estou usando o vb6, teria algum exemplo?
Mas pelo que percebi, vc está usando como se fosse um ftp, funciona será?

Obrigado pela ajuda.
TUNUSAT 02/10/2015 07:41:24
#452080
SIDNEINARDO,

O exemplo que eu copiei é em C#. Você pode tentar criar um objeto para ser usado no VB6.
Mas os três últimos links são VB6...

[][ô]s,
Tunusat.
SIDNEINARDO 02/10/2015 11:26:55
#452096
Ontem eu respondi aqui, mas limpou.. hoje tb.

bom..

Neste exemplo que passou, ele esta enviando para um FTP, tentei fazer mas não permite também.. muito estranho.

Tem um modelo para C# que o suporte deles disponibilizaram.. eu fiz, mas da outro erro.. de conversão de tipo de dados..
Já desenvolvi algo em C# mas não tenho tanto conhecimento...

vou colocar o exemplo deles, ( com o rico manual também ), e o meu código talvez seja mais fácil resolver, ser puder me ajudar.

Meu código em C#

private void bEnviar_Click(object sender, EventArgs e)
{
try
{
// strUrl = [Ô]http://www.mgmtributacao.com.br/issqn/wservice/wsnfeenvia.php?wsdl[Ô]
// strSoapAction = [Ô]http://www.mgmtributacao.com.br/issqn/wservice/wsnfeenvia.php/EnvNfe?wsdl[Ô]
Boolean _erro;

// string[] s = new string[110];

List<string> lstC = new List<string>();
lstC = fTxt2List([Ô]C:\\NFSe\    xtTeste.txt[Ô]); // carrego os dados ja gerado pelo sistema em VB. na ordem dos campos
lstConteudo.DataSource = lstC;

int nEnv = 0;
String vUsuario = [Ô]123456[Ô];
String vSenha = [Ô]123456[Ô];

Array ret = null;
try
{
for( int i = 0; i < 110; i++ ) { s[i] = lstC[i]; }
ret = s.ToArray();


// Dá erro na linha baixo.. diz que não pode converter tipos. Creio que eu estou errando no preenchimento da variavel ret.


if (((wsRefEnvia.EnvNfe[])(ret))[0].okk.ToString().Equals([Ô]OK[Ô]))
{ nEnv++; }
else
{
lstRetorno.Items.Add(((wsRefEnvia.EnvNfe[])(ret))[0].okk.ToString());
_erro = true;
}
}
catch (InvalidOperationException Ex)
{ lstRetorno.Items.Add([Ô]IOE: [Ô] + Ex.Message); }
catch (Exception Ex)
{ lstRetorno.Items.Add([Ô]E1: [Ô] + Ex.Message); }
}
catch (Exception Ex)
{ lstRetorno.Items.Add([Ô]E2: [Ô] + Ex.Message); }



}
///////////////
public List<string> fTxt2List(string pArquivo)
{

List<string> vlst = new List<string>();
if (System.IO.File.Exists(pArquivo))
{
StreamReader srTexto = srTexto = new StreamReader(pArquivo);
String sLinha = srTexto.ReadLine();
while (sLinha != null)
{
vlst.Add(sLinha);
sLinha = srTexto.ReadLine();
}
}
return vlst;
}
Faça seu login para responder