Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: C# ::: Soquetes, Internet, E-mail, Rede, etc ::: HttpWebRequest

Entenda e aprenda a usar a classe HttpWebRequest em seus programas C#

Quantidade de visualizações: 311 vezes
A classe HttpWebRequest fornece uma implementação específica da classe WebRequest para o protocolo HTTP. Veja sua posição na hierarquia de classes do .NET Framework:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

System.Object
  System.MarshalByRefObject
    System.Net.WebRequest
      System.Net.HttpWebRequest

Esta classe também implementa a interface ISerializable.

Objetos da classe HttpWebRequest fornecem suporte para as propriedades e métodos definidos na classe WebRequest e para propriedades e métodos adicionais que permitem aos usuários interagirem diretamente com servidores usando HTTP.

Veja um trecho de código no qual usamos a classe HttpWebRequest para fazer uma requisição HTTP ao endereço http://www.arquivodecodigos.net:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static void Main(string[] args){
  // vamos definir a URL a ser acessada
  string url = "http://www.arquivodecodigos.net";

  // vamos criar um objeto HttpWebRequest  
  HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);

  // vamos enviar a requisição e obter uma resposta em forma de 
  // um objeto HttpWebResponse
  HttpWebResponse httpWebResponse = (HttpWebResponse)httpRequest.GetResponse();

  // vamos verificar se a requisição obteve alguma resposta
  if(httpRequest.HaveResponse){
    Console.WriteLine("Houve resposta à requisição.");    
  }
  else{
    Console.WriteLine("Não houve resposta à requisição.");  
  }

  Console.Write("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

Veja que a requisição só acontece quando efetuamos uma chamada ao método GetResponse(). E, a resposta à requisição vem em forma de um objeto da classe HttpWebResponse.

Observe no trecho de código acima que não precisamos usar o construtor HttpWebRequest. Em vez disso usamos o método Create() da classe WebRequest para inicializar objetos HttpWebRequest. Se o esquema do URI (Uniform Resource Identifier) for http:// ou https://, o método Create() retorna um objeto HttpWebRequest.

O método GetResponse() efetua um requisição síncrona ao recurso especificado na propriedade RequestUri e retorna um objeto HttpWebResponse que contém a resposta. Podemos fazer requisições assíncronas ao recurso usando os métodos BeginGetResponse() e EndGetResponse().

Quando precisamos enviar dados a um recurso (URI), o método GetRequestStream() retorna um objeto Stream que pode ser usado para o envio de dados. Os métodos BeginGetRequestStream() e EndGetRequestStream() fornecem acesso assíncrono ao fluxo de envio de dados.

Link para compartilhar na Internet ou com seus amigos:

C# ::: Dicas & Truques ::: Validação de Dados

C# Windows Forms - Como validar o conteúdo de uma caixa de texto usando o evento Validating da classe Control

Quantidade de visualizações: 17187 vezes
O evento Validating (disponível para todas as classes que herdam de System.Windows.Forms.Control) é muito útil quando precisamos verificar a validade dos valores inseridos nos controle Windows Forms. Neste exemplo mostrarei como usá-lo para validar o conteúdo de um TextBox. Aqui veremos como verificar se o conteúdo inserido é um valor inteiro válido.

Tudo começa com a propriedade CausesValidation da classe Control. Esta propriedade nos permite definir se o controle provocará uma validação de seus dados quando o mesmo estiver prestes a perder o foco, ou seja, o usuário começara a interagir com outro controle após inserir dados no controle alvo da validação. Se o valor desta propriedade for true a validação ocorrerá.

Em seguida voltamos nossa atenção para o evento Validating (também declarado originalmente na classe Control). Este evento é disparado quando a propriedade CausesValidation é true e o controle está prestes a perder o foco (o usuário está saindo para interagir com outro controle). Veja a ordem dos eventos quando estamos saindo do controle usando o teclado:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

a) Leave
b) Validating
c) Validated
d) LostFocus

Se estivermos saindo do controle usando o mouse (clicando em outro controle), a ordem é:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

a) Leave
b) Validating
c) Validated

Veja um exemplo do uso do evento Validating de um TextBox:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void textBox1_Validating(object sender, CancelEventArgs e){
  MessageBox.Show("Meu conteúdo pode ser validado agora");
}

Experimente executar este código, coloque o foco na caixa de texto e depois "saia" para outro componente. Você verá a caixa de mensagem ser exibida.

O tratador de evento Validating recebe um objeto da classe CancelEventArgs. Esta classe possui apenas uma propriedade chamada Cancel. Se o valor desta propriedade for definido como true, o evento Validating (e todos que viriam após ele) é cancelado. Isso faz com que o foco fique preso no controle até que o usuário informe o valor correto. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void textBox1_Validating(object sender, CancelEventArgs e){
  // vamos verificar se a caixa de texto contém um valor inteiro válido
  try{
    // vamos tentar converter o texto recebido em um valor inteiro
    int valor = Int32.Parse(textBox1.Text);
    MessageBox.Show("Validação ocorreu com sucesso!");
  }
  catch(FormatException fe){
    // não conseguimos converter o texto em um valor inteiro
    MessageBox.Show("Valor inválido! Tente novamente! " +
      fe.Message.ToString());
    // limpamos a caixa de texto
    textBox1.Text = "";
    // e "prendemos" o foco na caixa de texto
    e.Cancel = true;
  }
}

Neste trecho de código nós usamos um bloco try...catch para tentar converter o texto do TextBox em um valor inteiro. Se houver falha na conversão nós avisamos o usuário, limpamos a caixa de texto e forçamos o usuário a fazer a correção.

Para finalizar, entra em cena o evento Validated. Este evento é disparado imediatamente após o evento Validating finalizar sua parte e é um bom lugar para avisarmos o usuário sobre o sucesso da validação ou remover quaisquer efeito visual que tenhamos inserido durante o processo de validação. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void textBox1_Validating(object sender, CancelEventArgs e){
  // vamos verificar se a caixa de texto contém um valor inteiro válido
  try{
    // vamos tentar converter o texto recebido em um valor inteiro
    int valor = Int32.Parse(textBox1.Text);
  }
  catch(FormatException fe){
    // não conseguimos converter o texto em um valor inteiro
    MessageBox.Show("Valor inválido! Tente novamente! " +
      fe.Message.ToString());
    // limpamos a caixa de texto
    textBox1.Text = "";
    // e "prendemos" o foco na caixa de texto
    e.Cancel = true;
  }
}

private void textBox1_Validated(object sender, EventArgs e){
  MessageBox.Show("Validação ocorreu com sucesso!");
}

Veja que tudo que fizemos aqui foi remover a mensagem de sucesso de validação do evento Validating para o evento Validated.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como remover todos os espaços de uma string em C# usando o método Replace() da classe String - Apostila C# para iniciantes

Quantidade de visualizações: 13719 vezes
Nesta dica mostrarei como tirar proveito do método Replace() da classe String do C# para remover todos os espaços de uma frase ou texto. Note que, usando esta técnica, todos os espaços serão removidos, tanto no início, quanto no meio ou fim da string.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      string frase = "Gosto muito de C#";
      Console.WriteLine("Com espaços: " + frase);

      // remove todos os espaços
      frase = frase.Replace(" ", "");
      Console.WriteLine("Sem espaços: " + frase);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código nós teremos o seguinte resultado:

Com espaços: Gosto muito de C#
Sem espaços: GostomuitodeC#


C# ::: Dicas & Truques ::: Gráficos

Como desenhar gráficos em C# usando GDI+ - Computação gráfica em C# - Passos inicias

Quantidade de visualizações: 16883 vezes
Qualquer um que queira iniciar os estudos e desenhos de gráficos em C# usando Windows Forms deve obrigatoriamente entender um pouco de GDI e GDI+. GDI é o acrônimo de Graphics Device Interface e GDI+ é o seu sucessor em versões mais recentes do Microsoft Windows. Com a indepedência do GDI+ podemos desenhar em um formulário, na tela ou impressora sem qualquer modificação no código. O próprio GDI+ se encarrega dos detalhes da implementação de cada um destes diferentes dispositivos.

O GDI+ é uma interface de programação de aplicações (API) que forma o sub-sistema do sistema operacional Microsoft Windows XP. Esta API é a responsável pela exibição de informações na tela e impressoras. O GDI+ é uma DLL Win32 chamada de gdiplus.dll que é distribuída com o Windows XP e versões mais recentes do Windows. Esta DLL está também disponível para uso em versões do Windows anteriores ao XP.

A plataforma .NET encapsula as funcionalidades do GDI+ nos seguintes namespaces: System.Drawing, System.Drawing.Drawing2D, System.Drawing.Imaging, System.Drawing.Text e System.Drawing.Printing.

Antes de iniciar seus desenhos em C# e Windows Forms, é importante entender o sistema de coordenadas do GDI+. Este sistema usa a medida de pixels ("picture elements"), que é a menor unidade de resolução no display de um monitor. Assim, o canto superior esquerdo de um controle GUI (um formulário, um painel, botão, etc) tem as coordenadas (0, 0), ou seja, x = 0 e y = 0. Lembre-se de que x é o eixo horizontal e y é o eixo vertical.

A classe Graphics, do pacote System.Drawing, é quem fornece boa parte dos métodos que usamos para desenhar em C# e Windows Forms. Veja sua posição na hierarquia de classes da plataforma .NET:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

System.Object 
  System.MarshalByRefObject 
    System.Drawing.Graphics

Um objeto desta classe pode ser obtido com uma chamada ao método CreateGraphics() a partir de um objeto que herda de System.Windows.Forms.Control ou gerenciando o evento Paint do controle e acessando a propriedade Graphics da classe System.Windows.Forms.PaintEventArgs.

Veja um trecho de código no qual desenhamos uma linha horizontal no formulário a partir do clique de um botão:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos obter o Graphics do formulário
  Graphics g = this.CreateGraphics();

  // vamos desenhar uma linha horizontal de 300 pixels na
  // cor preta e espessura de 1 pixel
  g.DrawLine(new Pen(Color.Black, 1), new Point(20, 80), 
    new Point(320, 80));

  // vamos liberar o objeto Graphics
  g.Dispose();
}



Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Água Fria: Reservatórios

Uma edificação possui 10 ocupantes com um consumo médio per capita de 200 litros por dia. Qual a capacidade total mínima do reservatório, segundo a NBR 5.626, sem considerar a reserva de incêndio?

A) 6 m3.

B) 1,6 m3.

C) 2 m3.

D) 8 m3.

E) 500 litros.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Dimensionamento de Redes de Distribuição de Água

Qual o número de habitantes se deve atingir para que um bloco populacional que hoje é atendido pela tubulação de 150 mm de diâmetro, e cada habitante consome em média 300 L/dia, tendo uma vazão no sistema de 6,5 L/s, ao qual ainda consegue atender bem atualmente? Busque consultar a tabela da norma ABNT que indica a vazão máxima para cada diâmetro de tubulação.



A) 5000 habitantes

B) 5520 habitantes

C) 3000 habitantes

D) 652 habitantes

E) 2256 habitantes
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Fórmula de Manning

Galerias subterrâneas de águas pluviais escoam todo o volume de chuvas que os bueiros conseguem drenar. São importantes para a drenagem de grandes centro. Isso porque, servem para evitar alagamentos e outros prejuízos sociais, ambientais e econômicos.

Para uma galeria de águas pluviais construída em concreto, com n igual 0,013, diâmetro de 85cm, declividade de fundo (S0) de 30cm/km, transportando 550l/s em regime permanente e uniforme, determine:

Qual altura da lâmina d'água pluvial que a galeria apresentará nessas condições?

A) 80cm.

B) 53cm.

C) 60cm.

D) 45cm.

E) 69cm.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Estrutura e propriedade dos materiais

O estudo das propriedades elétricas aborda os conceitos de resistividade e condutividade elétrica, pois são as mais relevantes quanto aos materiais de construção.

Assinale a alternativa que define essas propriedades corretamente.

A) Condutividade elétrica é a resistência à passagem da corrente elétrica através de um material, e a resistividade é a facilidade com que um material é capaz de transmitir uma corrente elétrica.

B) Condutividade elétrica é a facilidade com que um material é capaz de transmitir uma corrente elétrica, e a resistividade é a resistência à passagem da corrente elétrica através de um material.

C) Condutividade elétrica é a capacidade que um material apresenta de absorver energia, e a resistividade é a facilidade com que um material é capaz de transmitir uma corrente elétrica.

D) Condutividade elétrica é a facilidade com que um material é capaz de transmitir uma corrente elétrica, e a resistividade é a capacidade que um material apresenta em absorver a energia.

E) Condutividade elétrica é a resistência à passagem da corrente elétrica através de um material, e a resistividade é a capacidade que um material apresenta em absorver a energia.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Domínios de Deformações

O dimensionamento de uma seção transversal de um elemento linear concreto armado, sujeito a solicitações normais, de acordo com a NBR 6118 - "Projeto de estruturas de concreto" - é realizado com base em hipóteses básicas.

A respeito dessas hipóteses, analise as informações a seguir, indicando V para as verdadeiras e F para as falsas:

( ) A distribuição das deformações ocorre de forma não linear ao longo da altura da seção.

( ) As deformações nas barras de armadura são idênticas às deformações do concreto que as envolve.

( ) Admite-se que todas as tensões de tração existentes serão resistidas pelo concreto e pela armadura.

( ) Adota-se o diagrama parábola-retângulo idealizado para o concreto comprimido.

Assinale a alternativa que contém a sequência correta:

A) V - V - F - F.

B) V - F - F - F.

C) F - V - F - V.

D) F - V - V - V.

E) V - F - F - V.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 41 usuários muito felizes estudando em nosso site.