1.关于获取手机用户的唯一标识
加密的手机号码:被加密的手机号码,与手机号码一一对应。
中国联通WAP平台向CP Server(主域或IP地址)传送加密手机号码,CP Server获取该加密手机号码的方法为:在每次用户发送的请求http header中取“deviceid”。 在jsp中可以这样实现:string deviceid=request.getheader("deviceid")
2.做WAP开发的朋友都碰到过UA适配的问题.可是现在市面上的手机有许许多,而符合标准的手机还真不多.虽然可以通过HTTP_USER_AGENT属性取到UA,可以通过HTTP_X_UP_DEVCAP_SCREENPIXELS属性来取得手机的屏幕尺寸大小,可以通过HTTP_ACCEPT属性来获取手机支持的文件类型.
可是大多数手机SCREENPIXELS是不提供的,目前我测试过的手机只有NEC的N830手机提供了该参数,其他手机都没有支持.那么大家只能通过搭建自己的UA适配表来通过比对UA信息获取手机的屏幕尺寸和支持类型信息.
这里提供一个拥有2100个手机UA头信息的资料给大家.
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%
try{
String contents;
String filename = "/wap/Header" + ".txt";
FileOutputStream fo = new FileOutputStream(filename,true);
BufferedWriter fout = new BufferedWriter(new OutputStreamWriter(fo));
contents = "************************************************************************\n";
fout.write(contents,0,contents.length());
Enumeration e = request.getHeaderNames();
String headerName = "";
if (e!=null){
while (e.hasMoreElements()){
headerName = (String)e.nextElement();
contents = headerName + ":" + request.getHeader(headerName) + "\n";
fout.write(contents,0,contents.length());
}
}
contents = "MobileNo:"+request.getHeader("X-Up-Calling-Line-ID")+"\n";
//contents = "MobileNo:"+request.getHeader("deviceid")+"\n";
fout.write(contents,0,contents.length());
contents = "MobileType:"+request.getHeader("user-agent")+"\n";
fout.write(contents,0,contents.length());
contents = "wapprofile:"+request.getHeader("x-wap-profile")+"\n";
fout.write(contents,0,contents.length());
fout.close();
fo.close();
}catch (Exception e){
e.printStackTrace();
}
%>