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…
Problemas com Proxy
11 Respostas
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!!
vou ver com o pessoal da rede aki da empresa e depois te respondo aí… brigado
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
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!
que besteira que eu digitei lá… é conexão via socket, desculpa pessoal
o gerente de redes aki da empresa desativou os proxys e mesmo assim não funcionou…
Posta o código!
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();
}
}
}
}
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é!
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
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!