Pesquisar este blog

segunda-feira, 12 de março de 2012

Acessando a web com proxy usando Java

Quem nunca passou pela situação em que no ambiente de trabalho tudo funciona, nos clientes também, mas num cliente específico nada funciona? Pois é! Situação assim passei recentemente num cliente onde a aplicação que consome webservices não estava funcionando.
Depois de alguns cafés e horas atentei para o detalhe que o cliente acessa a web através de proxy, foi quando percebí que não havia implementado esse recurso na aplicação. E para piorar, ainda não tinha conhecimento em como fazer em Java.
Buscando informação na net descobrí as propriedades: http.proxyHost e http.proxyPort que foram a salvação para esse caso.
Então, para os colegas que também passam por esse problema, segue o "caminho das pedras".

Fonte: Java SE Documentation


Duas formas para resolver: Implementar no código as instruções abaixo
System.setProperty("http.proxyHost", "192.168.0.11");
System.setProperty("http.proxyPort", "3128");
Ou passar o parametro -D ao chamar a aplicação pela linha de comando. Este parametro serve para configurar qualquer propriedade Java.
java -Dhttp.proxyHost=192.168.0.11 -Dhttp.proxyPort=3128 aplicacao 

O exemplo acima foi utilizado para o protocolo HTTP, porém, o mesmo vale para o HTTPS, só alterando as propriedades para https.proxyHost e https.proxyPort.


quinta-feira, 8 de março de 2012

App IMC p/ Android

Pegando o jeitinho com Android, desenvolví uma simples, porém útil aplicação que calcula o Indice de massa corporal(IMC). Fonte: Wikipédia


IMCActivity.java
package imc.projeto;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class IMCActivity extends Activity implements OnClickListener{
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button botao = (Button)findViewById(R.id.btnCalcular);
        botao.setOnClickListener(this);
    }
    
 @Override
    public void onClick(View v) {
     
     TextView resultado = (TextView)findViewById(R.id.txtResultado);
     try {
      String altura = ( (EditText)findViewById(R.id.edtAltura) ).getText().toString();
      altura = altura.replace(",", ".");
      String peso = ( (EditText)findViewById(R.id.edtPeso) ).getText().toString();
      peso = peso.replace(",", ".");
      double dblAltura = Math.pow( Double.parseDouble( altura ),2 );
      double dblPeso = Double.parseDouble( peso );
      double calculo = dblPeso / dblAltura; 
      
      if( calculo < 18.5 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Abaixo do peso ideal" );
      } else if( calculo >= 18.5 && calculo <= 24.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Peso ideal" );
      } else if( calculo >= 25 && calculo <= 29.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Acima do peso(sobrepeso)" );
      } else if( calculo >= 30 && calculo <= 34.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Obesidade grau I" );
      } else if( calculo >= 35 && calculo <= 39.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Obesidade grau II" );
      } else {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Obesidade grau III" );
      }
      
      
     } catch (Exception e) {
         resultado.setText( "Erro ao informar algum dado!" + "\nErro: " + e.getMessage() );
     }
     
    }

}

main.xml



    


    

        

    


    


    
    



    

strings.xml


    Digite peso
    IMC
    Digite altura
    Calcular
    Resultado:



Download: IMC.apk
Essa app executa com a versão Android 2.3 API 10 ou superior.