J2ME连接WAP网

网上有好多J2ME联网的例子,但是我发现基本能搜到的都不适用,一般来说是写成这样

hc = (HttpConnection) Connector.open("http://xxx/xxx.jsp",Connector.READ,true);

这种方法是针对CMNET方法的,而我们基本又都是CMWAP方式访问网络,那么是不能这样写的,应该写成如下

            hc = (HttpConnection) Connector.open("http://10.0.0.172:80/访问的网页",Connector.READ,true);
            hc.setRequestProperty("X-Online-Host","自己的服务器名");
            hc.setRequestProperty("User-Agent",   System.getProperty("microedition.profiles"));

http://10.0.0.172:80是移动的WAP代理的IP和网关,你首先是先连到它那,再通过它代理访问你的服务器。

比如你要访问:http://www.game.com/j2meTest.jsp那么应该写成

            hc = (HttpConnection) Connector.open("http://10.0.0.172:80/j2meTest.jsp",Connector.READ,true);
            hc.setRequestProperty("X-Online-Host",www.game.com);
            hc.setRequestProperty("User-Agent",   System.getProperty("microedition.profiles"));

这样写完连接还没完,你需要写两次它,再写一遍内容一样的如下:

            hc = (HttpConnection) Connector.open("http://10.0.0.172:80/j2meTest.jsp",Connector.READ,true);
            hc.setRequestProperty("X-Online-Host",www.game.com);
            hc.setRequestProperty("User-Agent",   System.getProperty("microedition.profiles"));

为什么写两遍呢,你可以试一下,如果写一遍的话你访问到的不是你要访问的页面而是移动的资费页,资费页是你在第一次连接的时候才跳出来,所以我们再连一次就访问的是你要访问的页面了,当然如何更好的跳过移动资费页还需要你自己去完善,写这文章就是为了大家在初次做J2me与wap联网时少走弯路。

具体情况还与当地移动有关

你可能感兴趣的:(jsp,WAP)