Criando e consumindo Web Service em C-Sharp - Parte 2 - C# Brasil


Criando e consumindo Web Service em C-Sharp – Parte 2

{lang: 'pt-BR'}

Olá pessoa, dando continuidade ao artigo anterior onde criamos um web service, nesse artigo irei mostrar como é simples utilizado em uma aplicação WinForm.

Para quem não leu o artigo anterior:
Criando e consumindo Web Service em C-Sharp – Parte 1


Vamos ao que interessa.
1- Abra o projeto anterior, quem não tiver poderá fazer o download aqui.
2- Clique com o botão direito em cima do Solution no Solution Explorer do Visual Studio > Add > New Project…

3- Na janela que ira abrir, escolha Windows Application, defina um nome TesteMeuWebService

4- Agora adicionaremos referencia ao nosso WebService já criado. Clique com o botão direito em cima do Project no Solution Explorer do Visual Studio > Add Web Reference…

5- Vamos listar os Web Services inclusos em nosso Solution.

6- Selecionamos o nosso Web Service

7- Adicionamos como referencia ao projeto.

8- Agora vamos ao WinForm. Adicione 3 Labels, 3 TextBox, 1 ComboBox e 1 Button

9- Adicione a lista de operações no ComboBox conforme imagem abaixo.

  • Adição
  • Divisão
  • Multiplicação
  • Subtração


10- Agora de um duplo clique no Button para adicionarmos o evento Click e o código abaixo.


private void button1_Click(object sender, EventArgs e)
{
	decimal ValorA;
	decimal ValorB;
	localhost.OperacoesBasicas operacao = localhost.OperacoesBasicas.Adicao;
	decimal Resultado;

	decimal.TryParse(textBox1.Text, out ValorA);
	decimal.TryParse(textBox2.Text, out ValorB);

	switch (comboBox1.SelectedIndex)
	{
		case 0:
			operacao = localhost.OperacoesBasicas.Adicao;
			break;
		case 1:
			operacao = localhost.OperacoesBasicas.Divisao;
			break;
		case 2:
			operacao = localhost.OperacoesBasicas.Multiplicacao;
			break;
		case 3:
			operacao = localhost.OperacoesBasicas.Subtracao;
			break;
		default:
			operacao = localhost.OperacoesBasicas.Adicao;
			break;
	}

	localhost.Service MeuWebService = new localhost.Service();
	Resultado = MeuWebService.Calculadora(ValorA, ValorB, operacao);

	textBox3.Text = Resultado.ToString();
}

Pronto, mais se formos executar o nosso projeto, ele não será executado, pois o projeto que esta definido como principal é o WebService, então clique com o botão direito em cima do Project do WinForm > Set as StartUp Project

Agora sim, é só executar nosso projeto.

Espero que tenham entendido e qualquer dúvida é só mandar os comentários que responderei.

Se quiser realizar o download do exemplo criado: Aqui

No próximo artigo irei explicar como utilizar o mesmo webservice em um WebForm ASP.NET.

Abraço e até lá.

Postado em ASP.NET, C#, Visual Studio | Marcado como , , , ,

18 respostas para “Criando e consumindo Web Service em C-Sharp – Parte 2”

  1. Jean disse:

    Rafael, parabéns pelos artigos, estão muito bons. Obrgiado por postar os fontes, estou iniciando no C# e as vezes fico perdido. olhando o código pronto dá pra entender onde estou vacilando e tal.

    Parabéns mesmo. Show de bola!

  2. Elias disse:

    Parabéns. Você está sendo muito esclarecedor e prático, abordando os assuntos com a simplicidade que necessito para aprender.

  3. Obrigado Jean. Todos pois artigos que escrevo incluo o fonte. Acho isso importante justamente porque você pode acompanhar o artigo e acabar errando em alguma parte e o fonte ajuda a entender o que foi feito.

    Abraço

  4. Obrigado Elias, continue acompanhado que vem mais novidades.

  5. Thiago disse:

    Ao tentar adicionar a referencia a opção Add Web Reference… não aparece. Existe algum outro caminho para poder adicionar a referencia?

  6. Marcos123 disse:

    Raphael, como eu passo os valores pela url como parâmetro ?
    ou seja os valores do valorA, valorB e o tipo da operação.
    abraços…

  7. Olá Marcos

    Não tem como você passar parâmetro diretamente na URL do WebService. Siga o exemplo do artigo que o modo correto de se consumir um webservice.

    Abraço

  8. Marcos123 disse:

    A sim, perguntei pois no PHP pode passar os parâmetros diretamente pela URL, mas tranquilo vlw pela resposta.
    abraços

  9. Marcos Angelo disse:

    Boa tarde, estou com uma enorme dificuldade em colocar meu Web service online… ja tentei com IIS e nada… to mais perdido que cego em tiroteio!…. em codigos java.. android e c# eu vou ate bem… mas vai para essa parte de configurar um servico e etc… putz… me ferro….
    Desde ja grato.

    Marcos Angelo
    Analista de Sistemas.
    Tripagel Com. Rep. LTDA.
    marcosangelo@tripagel.com.br

  10. Olá Marcos, qual a sua dificuldade? Ocorre algum erro?
    Seria interessante você mandar sua dúvida no fórum.

  11. Glauco disse:

    Boa Tarde Raphael, como tem passado ?

    Gostaria de parabeniza-lo pelos artigos e gostaria de saber quando nos dara outro exemplo de aplicaçao…

    att

  12. Obrigado Glauco! Que tipo de exemplos você nos sugere?

  13. Leandro Farias disse:

    No meu caso Raphael, eu estou utilizando um WebService que criei e publiquei em um servidor, eu uso o FileUpload no cliente para subir um aplicativo mando via Stream, para o Webservice e ele salva lá no Servidor, mas estou com o seguinte problema.

    Quando eu tento enviar o arquivo ele me retorna o seguinte erro: Ocorreu um erro ao refletir ‘arquivo’. “arquivo” é o stream do arquivo que estou enviando.

    O erro da InnerException é o seguinte: {“Tipos ‘System.IO.Stream’ e ‘MeuSoft_WebRole.ProjetoUpload.Stream’ usam nome tipo XML, ‘Stream’, no espaço para nomes ‘http://tempuri.org/’. Use atributos XML para especificar um espaço para nome e/ou nome XML para o tipo.”}

    De que forma posso corrigir isso?

  14. Olá Leandro. Não consigo entender o problema que está ocorrendo. Abra um tópico no forum acessando http://csharpbrasil.com.br/forum assim e publicando parte do seu código para que todos possamos ajudar.

    Abraço

  15. cristiano disse:

    Boa noite Raphael, o localhost que você chamada na aplicação do que se trata?

  16. Alo Cristiano! E o Alias que eu dei para meu webservice. Eu poderia ter colocado qualquer outro nome na hora de referenciar o webservice. Eu poderia ter colocado por exemplo como wsMeuWebservice.

    Fui claro?
    Abraco

  17. Thata disse:

    Olá Rafael Post muito bom….

    Mais estou implementando ele… Estou criando um envio de e-mail automático toda vez que for executado algumas dos serviços, achei em outros artigo publicado aqui no c#Brasil e comecei a implementar porem esta apresentando alguns erros, me retorna um erro que diz assim, erro de conexão remota – falhou porque o componente conectado não respondeu corretamente após um período de tempo ou a conexão estabelecida falhou, então não roda meu envio de e-mail…
    o código é o seguinte:

    //Estancia da classe de mensagem
    MailMessage Email = new MailMessage();
    //Remetente
    Email.From = new MailAddress(“meuEmail@gmail.com”);
    //destinatário
    Email.CC.Add(“MeuEmailDestino@hotmail.com”);
    //corpo da mensagem
    Email.Body = “Testando A aplicação para envio de email.”;
    // Estancia a Classe de Envio
    SmtpClient ClienteSmtp = new SmtpClient(“smtp.gmail.com”);
    //Primeiro as credenciais sera falsa
    ClienteSmtp.UseDefaultCredentials = false;
    //Acesso ao servidor especificado
    ClienteSmtp.EnableSsl = true;
    // Credencial para envio por SMTP Seguro (Quando o servidor exige autenticação)
    ClienteSmtp.Credentials = new System.Net.NetworkCredential(“MeuEmailServidor@gmail.com”, “SenhaDoEmail”);
    //Verificando a porta Smtp
    ClienteSmtp.Port = 587;
    // Envia a mensagem
    ClienteSmtp.Send(Email);

  18. Olá Thalita, tudo bem?
    Analisando o seu código, não encontrei nenhum problema.
    Já tentou utilizar outro HOST para envio?

Deixe uma resposta

Qual a soma da expressão:
4 + 1