Problemas com Proxy

11 respostas
P

Eu fiz uma aplicação para celulares que utiliza uma conexão via proxy com um servidor, no Wireless Toolkit a aplicação funcionou perfeitamente, quando eu baixo procelular a aplicação ela funciona perfeitamnte até o momento que eu tenho que fazer alguma conexão com socket, aí ela me diz que houve uma falha no proxy, ou que ele não conseguiu montar o proxy. Estou testando no Motorola V300, se alguém puder me ajudar…

11 Respostas

C

Olá Ping,
Cara… esse proxy é da rede interna??? É um proxy da tua empresa???
Se for cara… sem chance… pq quem faz a conexao “internet” é o server da operadora de telefonia celular, ou seja, ela ta fora da tua rede… não pode comunicar-se com o teu proxy!! E no emulador funciona pq vc ta conenctando na rede interna!!

Aconselho não usar proxy!!!

Falow!!

P

vou ver com o pessoal da rede aki da empresa e depois te respondo aí… brigado

P

olha, falei com um dos meus chefes porque o responsável pela rede viajou, mas ele acha que o servidor não tem proxy, se não tiver muito, vc teria outra opinião sobre o problema? lembrando que não uma resposta correta ainda

C

Opa… se vc faz conexão via Proxy tem proxy!!! Que servidor vc quer acessar???
Como vc tá fazendo essa conexão via proxy???
Mostra o codigo!

Falow!

P

que besteira que eu digitei lá… é conexão via socket, desculpa pessoal

P

:cry: o gerente de redes aki da empresa desativou os proxys e mesmo assim não funcionou…

C

Posta o código!

P
import javax.microedition.io.SocketConnection;
import javax.microedition.io.Connector;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import java.io.OutputStream;
import java.io.InputStream;
import java.io.IOException;
import java.util.Vector;
import javax.microedition.midlet.MIDlet;

public class TimeClientRecebe implements Runnable {
   private Display display;
   private Alert alert;
   private SocketConnection sc;
   private OutputStream os;
   private InputStream is;
   private String palm;
   private String vendedor;
   private String nrTroca;
   private Menu midlet;

   public TimeClientRecebe(Menu midlet) {//Display display, Vector pedidos, Vector itemPed, Vector clientes, String palm, String vendedor, String nrTroca) {
       this.midlet = midlet;
       this.display = midlet.getDisplay();
       alert = new Alert ("TimeClient", null, null, null);
       alert.setTimeout(Alert.FOREVER);
   }

   public void start() {
      Thread t = new Thread(this);
      t.start();
   }

   public void run() {
      try {
        sc = (SocketConnection)
           Connector.open("socket://xxx.xxx.x.xx:xxxx");
        os = sc.openOutputStream();
        is = sc.openInputStream();
        os.write(new String("DD2").getBytes());
        int c = is.read();
        String cliente = null;
        String produto = null;
        String grupo = null;
        String subgrupo = null;
        String pendentes = null;
        StringBuffer string = new StringBuffer("");
        while (true)
        {
            if (c == 42)
            {
                if (cliente == null)
                {
                    cliente = string.toString();
                    string = new StringBuffer();
                }
                else if (produto == null)
                {
                    produto = string.toString();
                    string = new StringBuffer();
                }
                else if (grupo == null)
                {
                    grupo = string.toString();
                    string = new StringBuffer();
                }
                else if (subgrupo == null)
                {
                    subgrupo = string.toString();
                    string = new StringBuffer();
                    //break;
                }
                else if (pendentes == null)
                {
                    pendentes = string.toString();
                    string = new StringBuffer();
                    break;
                }
                c = is.read();
                continue;
            }
            else if ((c == 10)||(c == 13))
            {
                c = is.read();
                continue;
            }
            string.append((char)c);
            c = is.read();
        }
        Vector vecClientes = new Vector();
        Vector vecGrupos = new Vector();
        Vector vecSubGrupos = new Vector();
        Vector vecProdutos = new Vector();
        Vector vecPendentes = new Vector();
        String[] auxCli;
        StringBuffer limite;// = "";
        StringBuffer saldoDev;// = "";
        StringBuffer saldoCred;// = "";
        int tam = cliente.length();
        for (int i = 0; i < tam; i+=207)
        {
            auxCli = new String[13];
            limite = new StringBuffer(cliente.substring(183,191).trim());
            if (limite.length()>2)
                limite.insert(limite.length()-2,',');
            if (limite.length()>6)
                limite.insert(limite.length()-6,'.');
            
            saldoDev = new StringBuffer(cliente.substring(191,199).trim());
            if (saldoDev.length()>2)
                saldoDev.insert(saldoDev.length()-2,',');
            if (saldoDev.length()>6)
                saldoDev.insert(saldoDev.length()-6,'.');
            
            saldoCred = new StringBuffer(cliente.substring(199,207).trim());
            if (saldoCred.length()>2)
                saldoCred.insert(saldoCred.length()-2,',');
            if (saldoCred.length()>6)
                saldoCred.insert(saldoCred.length()-6,'.');
            
            auxCli[0] = cliente.substring(3,9);
            auxCli[1] = cliente.substring(9,49).trim();
            auxCli[2] = cliente.substring(49,60);
            auxCli[3] = cliente.substring(60,80).trim();
            auxCli[4] = cliente.substring(80,120).trim();
            auxCli[5] = cliente.substring(120,134).trim();
            auxCli[6] = cliente.substring(134,148).trim();
            auxCli[7] = cliente.substring(148,162).trim();
            auxCli[8] = cliente.substring(162,182).trim();
            auxCli[9] = cliente.substring(182,183);
            auxCli[10] = ""+limite;
            auxCli[11] = ""+saldoDev;
            auxCli[12] = ""+saldoCred;
            
            if (cliente.length()>213)
                cliente = cliente.substring(207);
            else
                cliente = "";
            vecClientes.addElement(auxCli);
        }
        midlet.atualizaClientes(vecClientes);
        tam = grupo.length();
        String[] auxGrup;
        for (int i = 0; i < tam; i+=26)
        {
            auxGrup = new String[2];
            auxGrup[0] = grupo.substring(3,6);
            auxGrup[1] = grupo.substring(6,26).trim();
            if (grupo.length()>26)
                grupo = grupo.substring(26);
            else
                grupo = "";
            vecGrupos.addElement(auxGrup);
        }
        midlet.atualizaGrupos(vecGrupos);
        
        tam = subgrupo.length();
        String[] auxSubGrup;
        for (int i = 0; i < tam; i+=29)
        {
            auxSubGrup = new String[3];
            auxSubGrup[0] = subgrupo.substring(3,6);
            auxSubGrup[1] = subgrupo.substring(6,9);
            auxSubGrup[2] = subgrupo.substring(9,29).trim();
            if (subgrupo.length()>29)
                subgrupo = subgrupo.substring(29);
            else
                subgrupo = "";
            vecSubGrupos.addElement(auxSubGrup);
        }
        midlet.atualizaSubGrupos(vecSubGrupos);
        
        tam = produto.length();
        StringBuffer vlPreco;
        StringBuffer vlPromo;
        StringBuffer dtPromo;
        String[] auxProd;
        for (int i = 0; i < tam; i+=99)
        {
            auxProd = new String[100];
            vlPreco = new StringBuffer(produto.substring(59,67).trim());
            if (vlPreco.length()>2)
                vlPreco.insert(vlPreco.length()-2,',');
            if (vlPreco.length()>6)
                vlPreco.insert(vlPreco.length()-6,'.');
            
            vlPromo = new StringBuffer(produto.substring(67,75).trim());
            if (vlPromo.length()>2)
                vlPromo.insert(vlPromo.length()-2,',');
            if (vlPromo.length()>6)
                vlPromo.insert(vlPromo.length()-6,'.');
            
            dtPromo = new StringBuffer(produto.substring(75,81));
            dtPromo.insert(2,'/');
            dtPromo.insert(5,'/');
            
            auxProd[0] = produto.substring(3,9);
            auxProd[1] = produto.substring(9,49).trim();
            auxProd[2] = produto.substring(49,59).trim();
            auxProd[3] = ""+vlPreco;
            auxProd[4] = ""+vlPromo;
            auxProd[5] = ""+dtPromo;
            auxProd[6] = produto.substring(81,82);
            auxProd[7] = produto.substring(82,92).trim();
            auxProd[8] = produto.substring(92,95);
            auxProd[9] = produto.substring(95,98);
            auxProd[10] = produto.substring(98,99);
            if (produto.length()>99)
                produto = produto.substring(99);
            else
                produto = "";
            vecProdutos.addElement(auxProd);
        }
        midlet.atualizaProdutos(vecProdutos);
        
        tam = pendentes.length();
        StringBuffer vlPedidoPen;
        StringBuffer itens;
        String aux = "";
        for (int i = 0; i < tam; i+=81)
        {
            vlPedidoPen = new StringBuffer(pendentes.substring(70,78));
            if (vlPedidoPen.length()>2)
                vlPedidoPen.insert(vlPedidoPen.length()-2,',');
            if (vlPedidoPen.length()>6)
                vlPedidoPen.insert(vlPedidoPen.length()-6,'.');
            while (vlPedidoPen.charAt(0)=='0')
                vlPedidoPen.delete(0,1);
            itens = new StringBuffer(pendentes.substring(78,81));
            while (itens.charAt(0)=='0')
                itens.delete(0,1);
            aux = pendentes.substring(3,9)+";"+pendentes.substring(9,24).trim()+";"+
                    pendentes.substring(24,30).trim()+";"+pendentes.substring(30,70).trim()+";"+
                    vlPedidoPen+";"+itens;
            if (pendentes.length()>81)
                pendentes = pendentes.substring(81);
            else
                pendentes = "";
            vecPendentes.addElement(aux);
        }
        
        midlet.atualizaPendentes(vecPendentes);
        
        alert.setString("A transmissao foi efetuada com sucesso");
        alert.setType(AlertType.CONFIRMATION);
        display.setCurrent(alert); 
      } 
      catch(IOException e) {
         alert.setString("Não foi possível fazer a conexão com o servidor");
         alert.setType(AlertType.ERROR);
         display.setCurrent(alert);

      } finally {
         try {
           if(is != null) {
             is.close();
           }
           if(sc != null) {
             sc.close();
           }
         } catch(IOException e) {
           e.printStackTrace();
         }
      }    
   } 
}
C

Olá Ping,
Pois é… é dificil dizer…
Tenta colocar isso:

Peguei isso na API.
Não é problemas de conexão da operadora???
Vc consegue fazer outro tipo de conexão???

Vc vai ter q debugar… colocar mensagens de aviso pra ver onde é o problema!!!

Otra coisa… o server tem um socket aberto escutando ou é http?

Até!

P

“clv”:
Olá Ping,
Pois é… é dificil dizer…
Tenta colocar isso:

Peguei isso na API.
Não é problemas de conexão da operadora???
Vc consegue fazer outro tipo de conexão???

Vc vai ter q debugar… colocar mensagens de aviso pra ver onde é o problema!!!

Otra coisa… o server tem um socket aberto escutando ou é http?

Até!

O que a linha de código que vc postou ali faz?

Quanto a ser problema de conexão na operadora pode ser possível, mas acho mais fácil ser alguma configuração que deve ser feita no celular.
Quanto a fazer outro tipo de conexão eu não tentei…
O server tem uma porta aberto com um socket ouvindo aquela porta

C

Não sei ao certo… tava no exemplo da API!!!

Mas acho legal vc fazer um exemplo basico com conexao http pra testar se não é operadora e tal!!!

Falow!

Criado 26 de agosto de 2004
Ultima resposta 30 de ago. de 2004
Respostas 11
Participantes 2