<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sylverio &#187; Java</title>
	<atom:link href="http://sylverio.com.br/blog/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://sylverio.com.br/blog</link>
	<description>Análise, Arquitetura, Orientação a Objetos, UML, Tecnologias e Programação</description>
	<lastBuildDate>Fri, 11 May 2012 02:35:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Requisição HTTP com Java Application Parte 2</title>
		<link>http://sylverio.com.br/blog/2009/09/requisicao-http-com-java-application-parte-2/</link>
		<comments>http://sylverio.com.br/blog/2009/09/requisicao-http-com-java-application-parte-2/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 03:17:27 +0000</pubDate>
		<dc:creator>Carlos Fernando Sylverio</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://sylverio.com.br/blog/?p=231</guid>
		<description><![CDATA[Olá pessoal, No post anterior Requisição HTTP com Java Application Parte 1 , falei um pouco sobre como obter o conteúdo de uma página web. Mas nem sempre somente o conteúdo de uma página nos interessa. Na maioria das vezes &#8230;<p class="read-more"><a href="http://sylverio.com.br/blog/2009/09/requisicao-http-com-java-application-parte-2/">Saiba mais &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>No post anterior <a href="http://sylverio.com.br/blog/?p=197">Requisição HTTP com Java Application Parte 1</a> , falei um pouco sobre como obter o conteúdo de uma página web. Mas nem sempre somente o conteúdo de uma página nos interessa.<br />
Na maioria das vezes necessitamos que de uma interação com a página (ou páginas) por meio de troca de informação, ou seja, enviamos dados, a página processa os dados e nos retorna a informação.</p>
<p>Para isso iremos trabalhar com o objeto <em>URLConnection</em>, objeto existente no pacote <strong>java.net</strong>.<br />
Veja o exemplo abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">teste.communication</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.BufferedReader</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.InputStreamReader</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.OutputStreamWriter</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.MalformedURLException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.URL</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.URLConnection</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.URLEncoder</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TesteComunicacao <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> 
			<span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">MalformedURLException</span>, <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// monta estrutura de parametros a serem eviados</span>
			<span style="color: #003399;">String</span> data <span style="color: #339933;">=</span> <span style="color: #003399;">URLEncoder</span>.<span style="color: #006633;">encode</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;nome&quot;</span>, <span style="color: #0000ff;">&quot;UTF-8&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;=&quot;</span> <span style="color: #339933;">+</span> <span style="color: #003399;">URLEncoder</span>.<span style="color: #006633;">encode</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Fernando&quot;</span>, <span style="color: #0000ff;">&quot;UTF-8&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		         <span style="color: #003399;">URL</span> url <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">URL</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;http://localhost/get_name.php&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	                 <span style="color: #003399;">URLConnection</span> urlConnection <span style="color: #339933;">=</span> url.<span style="color: #006633;">openConnection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	                 <span style="color: #666666; font-style: italic;">// envia dados</span>
	                 urlConnection.<span style="color: #006633;">setDoOutput</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	                 <span style="color: #003399;">OutputStreamWriter</span> outputWriter <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">OutputStreamWriter</span><span style="color: #009900;">&#40;</span>urlConnection.<span style="color: #006633;">getOutputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	                 outputWriter.<span style="color: #006633;">write</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	                 outputWriter.<span style="color: #006633;">flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	                 <span style="color: #666666; font-style: italic;">// Obtem as respostas</span>
	                 <span style="color: #003399;">InputStreamReader</span> inputReader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">InputStreamReader</span><span style="color: #009900;">&#40;</span>urlConnection.<span style="color: #006633;">getInputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	                 <span style="color: #003399;">BufferedReader</span> bufferedReader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">BufferedReader</span><span style="color: #009900;">&#40;</span> inputReader <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>** retorno da página web **&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">String</span> linha <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>linha <span style="color: #339933;">=</span> bufferedReader.<span style="color: #006633;">readLine</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>linha<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Após instânciar o objeto <em>URL</em>, podemos obter o objeto <em>URLConnection</em> através do seu método <em>openConnection</em>.<br />
O método <em>urlConnection.setDoOutput(true); </em> é executado para informar que será enviado parâmetros.<br />
Depois obtemos o stream de saída e enviamos os dados (obs: esses dados são enviados via método POST).<br />
O retorno é obtido através do método <em>urlConnection.getInputStream</em> que é tratado por meio do objeto <em>InputStreamReader</em>.</p>
<p>Para simular o processamento dos dados enviados gerei um arquivo PHP com o seguinte código:</p>
<p><code><br />
&lt;?php<br />
    $response = $_POST['nome'];</p>
<p>    echo "Conteúdo recebido: ";<br />
    echo $response;<br />
?&gt;<br />
</code></p>
<p>Ele simplesmente lê o dado recebido e gera uma resposta apartir das informações obtidas.</p>
<p>Enjoy<br />
 <img src='http://sylverio.com.br/blog/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://sylverio.com.br/blog/2009/09/requisicao-http-com-java-application-parte-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Requisição HTTP com Java Application Parte 1</title>
		<link>http://sylverio.com.br/blog/2009/08/requisicao-http-com-java-application-parte-1/</link>
		<comments>http://sylverio.com.br/blog/2009/08/requisicao-http-com-java-application-parte-1/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 04:31:03 +0000</pubDate>
		<dc:creator>Carlos Fernando Sylverio</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://sylverio.com.br/blog/?p=197</guid>
		<description><![CDATA[Recentemente precisei desenvolver uma aplicação (Java Application) que faz uma requisição http a um servidor externo. E tive muita dificuldade de encontrar bons exemplos sobre o assunto. Após muita pesquisa e um pouco de estudo pude adquirir algum conhecimento, que &#8230;<p class="read-more"><a href="http://sylverio.com.br/blog/2009/08/requisicao-http-com-java-application-parte-1/">Saiba mais &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Recentemente precisei desenvolver uma aplicação (Java Application) que faz uma requisição http a um servidor externo. E tive muita dificuldade de encontrar bons exemplos sobre o assunto.<br />
Após muita pesquisa e um pouco de estudo pude adquirir algum conhecimento, que será apresentado a seguir neste post.</p>
<p>Inicialmente a API do Java nos disponibiliza algumas classes que nos possibilita criar um servidor e um cliente TCP/IP, abrir uma conexão TCP/IP, ler de uma conexão, escrever para uma conexão. Essas classes são:</p>
<ul>
<li>Socket e ServerSocket</li>
<li>InetAddress</li>
<li>URL</li>
</ul>
<p>Todas presente no pacote <strong>java.net</strong></p>
<p>Abaixo segue uma exemplo de utilização da classe URL, para se obter o conteúdo de página armazenada em uma servidor web.</p>
<p><em>A url acessada pela aplicação estava em um servidor local. Mas é possível acessar o conteúdo de qualquer servidor na internet.</em></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.BufferedReader</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.InputStreamReader</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.MalformedURLException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.URL</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TesteComunicacao <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 
	 * @param args
	 * @throws MalformedURLException
	 * @throws IOException
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> 
			<span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">MalformedURLException</span>, <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// representa um Uniform Resource Locator, </span>
			<span style="color: #666666; font-style: italic;">// um ponteiro para um &quot;recurso&quot; na World Wide Web.</span>
			<span style="color: #003399;">URL</span> url <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">URL</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;http://localhost/index.html&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;** Tipo de objeto retornado **&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> url.<span style="color: #006633;">getContent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getClass</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getCanonicalName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>** alguns métodos da classe URL **&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Número da porta padrão do protocolo:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getDefaultPort</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Nome do arquivo:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Nome do host:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getHost</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Parte do caminha:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getPath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Número da porta:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getPort</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Nome do protocolo:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getProtocol</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Parte da consulta:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getQuery</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Ancora (referencia da URL):&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getRef</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;userInfo da URL:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">getUserInfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Número de indexação de um hash table:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">hashCode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Representação da url:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">toExternalForm</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Representação da url:&quot;</span> <span style="color: #339933;">+</span> url.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// cria um stream de entrada do conteúdo</span>
			<span style="color: #003399;">InputStreamReader</span> inputReader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">InputStreamReader</span><span style="color: #009900;">&#40;</span> url.<span style="color: #006633;">openStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">BufferedReader</span> bufferedReader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">BufferedReader</span><span style="color: #009900;">&#40;</span> inputReader <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>** Conteúdo do recurso web **&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">String</span> linha <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>linha <span style="color: #339933;">=</span> bufferedReader.<span style="color: #006633;">readLine</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>linha<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>			
&nbsp;
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Resultado</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">** Tipo de objeto retornado **
java.util.zip.GZIPInputStream
&nbsp;
** alguns métodos da classe URL **
Número da porta padrão do protocolo:80
Nome do arquivo:/index.html
Nome do host:localhost
Parte do caminha:/index.html
Número da porta:-1
Nome do protocolo:http
Parte da consulta:null
Ancora (referencia da URL):null
userInfo da URL:null
Número de indexação de um hash table:942787792
Representação da url:http://localhost/index.html
Representação da url:http://localhost/index.html
&nbsp;
** Conteúdo do recurso web **
&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</pre></div></div>

<p>Até mais <img src='http://sylverio.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://sylverio.com.br/blog/2009/08/requisicao-http-com-java-application-parte-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Estilo de programação</title>
		<link>http://sylverio.com.br/blog/2009/06/estilo-de-programacao/</link>
		<comments>http://sylverio.com.br/blog/2009/06/estilo-de-programacao/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 03:52:55 +0000</pubDate>
		<dc:creator>Carlos Fernando Sylverio</dc:creator>
				<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://sylverio.com.br/blog/?p=159</guid>
		<description><![CDATA[Não é nada de outro mundo, mas totalmente fundamental para o desenvolvimento de software em equipe. Estilo são definições de como escrever o código fonte, em outras palavras, padrões de nomenclatura para nomes e declarações de variáveis, atributos, métodos, classes, &#8230;<p class="read-more"><a href="http://sylverio.com.br/blog/2009/06/estilo-de-programacao/">Saiba mais &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Não é nada de outro mundo, mas totalmente fundamental para o desenvolvimento de software em equipe. Estilo são definições de como escrever o código fonte, em outras palavras, padrões de nomenclatura para nomes e declarações de variáveis, atributos, métodos, classes, etc.</p>
<p>Para isso podemos seguir algumas convenções (como em Java e C#.Net), ou criar um definições de estilo com apropria equipe em questão.</p>
<p><strong>Vantagens ao usar estilo</strong></p>
<p>Quando se esta desenvolvendo em equipe, o código deve ser compreendido por todos os membros. O estilo de programação tem como função auxiliar a equipe escrever código de modo único, assim é de fácil compreenção os códigos criados por outros menbros.</p>
<p><strong>Complementação do estilo</strong></p>
<p>Mais meu habito que propriamente do estilo, é ter um cuidado especial ao se definir nomes de objetos, métodos, atributos, variáveis, entre outros. A correta nomeação dos elementos no código ajuda a diminuir o hiato entre o código e mundo real, e assim como estilo de programação, também tornar mais fácil sua compreensão.</p>
<p><strong>Exemplos do dia a dia</strong></p>
<p>Recentemente estive envolvido em um projeto de uma aplicação antiga. Não havia na empresa mais nenhum desenvolvedor que criou a aplicação e precisávamos implementar algumas melhorias. Ao começar a implementar as melhorias, me deparei com algumas variáveis chamada X, Y, item. E perdi horas tentando compreender o que significa X, Y e item.</p>
<p><strong>Conclusão</strong></p>
<p>Para exemplificar esses conceitos, criei 2 aplicações iguais, ambas em Java, porem o primeiro está totalmento sem estilo e o segundo com um estilo que normalmente sigo. Compare e tire suas próprias conclusões:</p>
<p><strong>Aplicação sem estilo</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> XyZ <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> no<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> XyZs <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">long</span> serialVersionUID <span style="color: #339933;">=</span> 1L<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Application <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		XyZs xxs <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XyZs<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		xxs.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>Cria<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Sergio&quot;</span>, <span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		xxs.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>Cria<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rafael&quot;</span>, <span style="color: #cc66cc;">24</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		xxs.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>Cria<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Frank&quot;</span>, <span style="color: #cc66cc;">22</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		ImprimeLista<span style="color: #009900;">&#40;</span>xxs<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> XyZ Cria<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> n, <span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		XyZ x <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XyZ<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		x.<span style="color: #006633;">no</span> <span style="color: #339933;">=</span> n<span style="color: #339933;">;</span>
		x.<span style="color: #006633;">id</span> <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> x<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> ImprimeLista<span style="color: #009900;">&#40;</span>XyZs g<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;==== Lista de Amigos ==== <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Iterator</span> i <span style="color: #339933;">=</span> g.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			XyZ a <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>XyZ<span style="color: #009900;">&#41;</span> i.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Nome: &quot;</span> <span style="color: #339933;">+</span> a.<span style="color: #006633;">no</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; idade: &quot;</span> <span style="color: #339933;">+</span> a.<span style="color: #006633;">id</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Aplicação com estilo</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Amigo <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> nome<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> idade<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Amigos <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">long</span> serialVersionUID <span style="color: #339933;">=</span> 1L<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Application <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// cria lista de amigos</span>
		Amigos amigos <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Amigos<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// adiciona amigo a lista</span>
		amigos.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>CriaAmigo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Sergio&quot;</span>, <span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		amigos.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>CriaAmigo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rafael&quot;</span>, <span style="color: #cc66cc;">24</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		amigos.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>CriaAmigo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Frank&quot;</span>, <span style="color: #cc66cc;">22</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		ImprimeLista<span style="color: #009900;">&#40;</span>amigos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> Amigo CriaAmigo<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> nome, <span style="color: #000066; font-weight: bold;">int</span> idade<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		Amigo ret <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Amigo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		ret.<span style="color: #006633;">nome</span> <span style="color: #339933;">=</span> nome<span style="color: #339933;">;</span>
		ret.<span style="color: #006633;">idade</span> <span style="color: #339933;">=</span> idade<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> ret<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> ImprimeLista<span style="color: #009900;">&#40;</span>Amigos amigos<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;==== Lista de Amigos ==== <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Iterator</span> i <span style="color: #339933;">=</span> amigos.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			Amigo amigo <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Amigo<span style="color: #009900;">&#41;</span> i.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Nome: &quot;</span> <span style="color: #339933;">+</span> amigo.<span style="color: #006633;">nome</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; idade: &quot;</span> <span style="color: #339933;">+</span> amigo.<span style="color: #006633;">idade</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Perceptível a diferença, não?</p>
<p><strong>Links Complementares:</strong></p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx" target="_blank">Convenções MS Capitalization Styles</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx" target="_blank">Orientações para nomeação MS</a></li>
<li><a href="http://pt.wikipedia.org/wiki/CamelCase" target="_blank">CamelCase</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Nota%C3%A7%C3%A3o_h%C3%BAngara" target="_blank">Notação Húngara</a></li>
</ul>
<p>Não encontri nenhum artigo de estilo de Java, assim que eu encontrar eu posto aqui. Enquanto isso podemos ver a <a href="http://java.sun.com/reference/api/" target="_blank">API do Java</a> e tirar nossas conclusões de como escrever em Java com um estilo bem parecido.</p>
<p>Até mais&#8230; <img src='http://sylverio.com.br/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://sylverio.com.br/blog/2009/06/estilo-de-programacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

