上午的时候原本想通过改变切入点的方式来实现cmwap,但是我们技术总监认为不好,无奈,继续狠下心来,就做了个CMWAP获取HTTP数据的demo,比想象中的简单多了。
在这里扯下淡,大家看过拖延心理学没,如果一个人不喜欢做某件事情,那么这个人采取的最直接的方式就是拖延,感觉自己这种情况很明显,另外如果一件事情,自己想做,公司也有需要,那么这个时候你工作起来就是双倍功效,反之就会效率就会折扣。
好了,不扯淡了,我直接贴下代码,好了.
//10.0.172.80 移动梦网网关
// 梦网网关的端口号
try {
URL url = new URL("http://10.0.0.172:80/api/wap.do?op=verify&code=800000012&imei=357242042763950&cellid=35092&lac=4191");
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestProperty("X-Online-Host", "www.uareonly.com");
httpConn.setRequestProperty ("Content-Type", "application/x-www-form-urlencoded");
httpConn.setRequestMethod("GET");
httpConn.setRequestProperty("Accept", HTTP_S_KACCEPT);
httpConn.setRequestProperty("User-Agent", HTTP_S_KUSERAGENT);
int length = httpConn.getContentLength();
Log.e("", "length:"+length);
InputStream input = httpConn.getInputStream();
byte[] data = new byte[length];
input.read(data);
Log.e("", "result:"+new String(data));
input.close();
httpConn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
实际要访问的地址是:
http://www.uareonly.com/api/wap.do?op=verify&code=800000012&imei=357242042763950&cellid=35092&lac=4191
获取的结果是:
在此之前显示的数据表明:
如果在CMWAP连接方式下,直接的使用:URL url = new URL (http://wwww.); 这种方式,那么会直接报unknow host的异常错误,
上面的方式是以前在写J2ME游戏扣费代码部分总结出来的,现在基本是照搬到android上,以前碰到过需要连接2次得情况,但是今天测试并没有发现这种情况.
2011.10.11补充更新:
最近测试呢,发现有时候会返回移动梦网网关的数据,但是概率比较小,因此有时候还是应该做下判断,判断是否是返回移动梦网网关的数据.我这边测试返回的移动梦网网关的数据如下: