Problema com HttpConnection

Boa tarde,

Estou tendo problemas em conseguir que minha midlet faça uma conexão com meu servidor e retorne um conteúdo qualquer, seja usando o WTK, seja no próprio aparelho celular.

O código que estou usando é este:

conn = (HttpConnection) Connector.open(url, Connector.READ_WRITE);
     
conn.setRequestMethod(HttpConnection.POST);
conn.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");
conn.setRequestProperty("Accept", "text/comma-separated-values");
conn.setRequestProperty("Content-type","application/x-www-form-urlencoded");

os = conn.openOutputStream();
os.write(prepareParams(params));
os.close();
         
is = conn.openInputStream();

O pau dá logo na linha do openInputStream.
A mensagem é esta:


java.io.IOException:
Error initializing HTTP Tunel connection:
HTTP 1.0/ 403 Forbidden Server:
squid/2.5 STABLE1
Content-type: text/html
Content-length: 1044
X-Squid-Error: ERR_ACCESS_DENIED 0
X-Cache: MISS from xxx.yyy.com.br
Mime-Version: 1.0
Proxy-Connection: close

Procurei no Google sobre “HTTP Tunel” mas não encontrei nada referente a midlets ou coisas assim…

Para acessar a internet, minha máquina é configurada para usar o servidor proxy.
O WTK já está configurado com o endereço e porta.
Com o IE, a pagina é carregada normalmente…

Alguém tem noção do que possa estar ocorrendo ?

Teu proxy não permite connect

Olá…

Como assim meu proxy não permite “connect” ? Me explica…

Se meu browser, client de FTP, ICQ, Messenger, enfim, qualquer coisa tá saindo para a internet, porquê eu estou tendo problema com o WTK ?
Abri o arquivo de configuração dele para ver se os valores realmente estão lá (192.168.1.254:3128) e tá tudo certinho…

grato.

X-Squid-Error: ERR_ACCESS_DENIED 0

O Squid esta impedindo conexoes fora da porta HTTP padrao… Entendeu???

Por isso ele nao fez o Tunell da porta do Proxy (3128) com a porta que voce esta chamando na url…

[]'s

E como eu resolvo isto ?

Preciso mexer no código, no WTK ou aonde ?

Help !!!

obrigado pela ajuda até aqui.

Só mais uma coisa…na url eu não coloquei a porta…portanto pra mim é implícito que é a 80, certo ?

Que eu saiba na URL não é necessário explicitar a porta a se conetar, basta a URL completada apontando para a página ou recurso que se quer acessar…

grato.

Qual o url que voce esta usando???

http://algumacoisa.xxx.xx/

O padrao e 80

https://algumacoisa.xxx.xx/

O padrao e 443

Converse com o analista de rede e verifique as configuracoes de Firewall e Proxy da sua rede…

[]'s

Minha url é no formato:

http://xxx.dominio.com.br/script.php

Também já testei especificar a porta e tb não funcionou:

http://xxx.dominio.com.br/script.php:80

Não entendo porquê está dando errado…
Usei o Ethereal para dar uma “snifada” na comunicação e não encontrei nada de estranho.

Quanto a conversar com ele, até posso, embora ache muito estranho tudo na minha máquina funcionar com o servidor proxy da empresa e só não o WTK/Java…

Se alguém tiver mais algum palpite, tô aceitando…

obrigado.

Corrigindo sua URL…

http://xxx.dominio.com.br:80/script.php

Faça o seguinte teste…

c:>telnet xxx.dominio.com.br 80

Se conectar no TELNET e pq sua classe ta com problema…

Se nao conectar, provavelmente é rede…

[]s

Caro ozielneto,

Eu decidi testar o mesmo código em casa e devido a não ter servidor proxy, funcionou sem problemas.
Consigo fazer o POST e receber a resposta que eu queria do script.

O vilão da estória deve ser alguma configuração de rede da minha máquina, do switcher, ou do próprio Squid.

A outra sintaxe para a URL que vc forneceu eu testei e também não funcionou.

O Telnet também não funcionou…ele congela e não sai disto…
Dando um Ping em xxx.dominio.com.br, consigo uma resposta normal que ele é alcançavel.
Se eu vou no IE e uso a URL, ele faz o GET sem problemas, me retornando a resposta, igual como se eu estivesse em casa, onde tive sucesso em me conectar usando o emulador.

Existe alguma configuração no Windows ou um meio de detectar onde poderia estar o problema ?

Fui no site do SQUID, vasculhei o mesmo a procura daquela mensagem de erro mas nada de encontrar algo…

mais uma vez, obrigadão !

Consegui resolver o meu problema.

Após usar um sniffer, vi que sempre a midlet fazia uma requisição HTTP do tipo CONNECT, mesmo que eu especificasse que estava usando HttpConnection.POST.

Após sniffar uma sessão do IE, vi que ele retornava o conteúdo desejado pois ele fazia certinho um POST e não um CONNECT, como minha midlet vinha fazendo.

Após desabilitar então o uso de proxy no WTK e rever as configurações de TCP-IP da minha máquina, tudo funcionou como esperado.

O que deu para perceber de tudo isto é que o WTK 1.04 e 2.0 não trabalham muito bem com a configuração de proxy setada.
Como o meu webserver pode ser acessado internamente sem necessitar do proxy configurado no WTK (pois fica distante de mim fisicamente), pude finalmente conseguir fazer uma conexão usando o emulador.

Já instalei a midlet no meu C55 (sem antes ter algumas dores de cabeça, tb) e tá rodando como esperando.
Quanto ao 2280, este por ser CDMA é outra estória e vou ter mais trabalho.

obrigado a todos que ajudaram a entender o que estava acontecendo.