以CMWAP代理的方式连接网络,在J2ME中,连接的代码和直接连接有所不同,代码如下:
HttpConnection http = (HttpConnection)Connector.open(("http://10.0.0.172/"+url);
http.setRequestProperty("X-Online-Host",ServerName);
例如你需要访问的地址为:http://www.test.com/login/loginServlet则上面的代码就为:
HttpConnection http = (HttpConnection)Connector.open(("http://10.0.0.172/" + "login/loginServlet");
http.setRequestProperty("X-Online-Host","www.test.com");
在实际使用过程中,只需要使用实际需要访问的地址的域名或者IP来代替ServerName,例如示例中的“www.test.com”,使用后续的地 址类代替代码中的url,例如示例中的“login/loginServlet”,就可以实际的使用CMWAP代理来进行连接了。
然后 再进行处理
String s1 = httpConn.getHeaderField("Content-Type");
if(s1.equals("text/vnd.wap.wml; charset=UTF-8")){
//重新发起一次请求
httpConn = (HttpConnection)Connector.open("http://10.0.0.172/"+url);
httpConn.setRequestProperty("X-Online-Host", "gamewave.cn");
}
"text/vnd.wap.wml; charset=UTF-8" 这里,每个机型返回的是不一样的,有的中间有空格,有的没有,所以要真机测试,具体返回什么
HttpConnection http = (HttpConnection)Connector.open(("http://10.0.0.172/"+url);
http.setRequestProperty("X-Online-Host",ServerName);
例如你需要访问的地址为:http://www.test.com/login/loginServlet则上面的代码就为:
HttpConnection http = (HttpConnection)Connector.open(("http://10.0.0.172/" + "login/loginServlet");
http.setRequestProperty("X-Online-Host","www.test.com");
在实际使用过程中,只需要使用实际需要访问的地址的域名或者IP来代替ServerName,例如示例中的“www.test.com”,使用后续的地 址类代替代码中的url,例如示例中的“login/loginServlet”,就可以实际的使用CMWAP代理来进行连接了。
然后 再进行处理
String s1 = httpConn.getHeaderField("Content-Type");
if(s1.equals("text/vnd.wap.wml; charset=UTF-8")){
//重新发起一次请求
httpConn = (HttpConnection)Connector.open("http://10.0.0.172/"+url);
httpConn.setRequestProperty("X-Online-Host", "gamewave.cn");
}
"text/vnd.wap.wml; charset=UTF-8" 这里,每个机型返回的是不一样的,有的中间有空格,有的没有,所以要真机测试,具体返回什么