jsp的wap开发获取手机号码

本文介绍在JSP环境中如何通过WAP方式获取用户的手机号码。主要依靠HTTP请求头中的特定字段,如x-up-calling-line-id来实现。若该字段不存在,则可以通过遍历所有HTTP头部信息来定位手机号的位置。需要注意的是,此方法的有效性依赖于与运营商的合作。

JSP中wap获取手机号码

文章分类:移动开发

原来获取用户手机号码很简单,关键是通信营运商给不给你送。如果给你送的话,手机号码是在Http请求头里获取,通常在x-up-calling-line-id项里,如果通过此项得不到的话。可采用循环读出所有的Http头里的信息,号码在哪一个头里就一目了然了。
String userPhone = request.getHeader("x-up-calling-line-id");一般通过这句就能获取到手机号码。

如果号码不在上面这条请求头里,采用下面方法读取看号码在哪一条请求头里。

Enumeration headers = request.getHeaderNames() ;
while(headers.hasMoreElements())
{
     String head = (String)headers.nextElement();
     out.println(head+":"+request.getHeader(head));
}
这样就可以将所有的信息打印出来,看到号码的位置了。注意获取号码的前提是跟营运商有合作或者跟他们申请。同意给你送,否则程序实现了也没有用。
package test; import java.io.DataInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; public class TestGetGroup { @Test public void main() { // getfile("http://localhost/getportrait.do?Uri=tel:13811094505&Size=2400", // "F:\\testpicture\\11111.jpg"); // getTest("http://web.devtest.mypica.com:8082/getportrait.do?Uri=tel:13811094505&Size=96", // "F:\\testpicture\\11111.jpg"); getTest( "http://218.241.177.244:3080/GetGrouPortrait.do?group-uri=sip:3000558@fetion.com&Size=96", "F:\\testpicture\\ggggg.jpg"); // getTest( // "http://127.0.0.1:8080/GetGrouPortrait.do?group-uri=sip:3000558@fetion.com&Size=96", // "F:\\testpicture\\ccccc.jpg"); } @BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } @After public void tearDown() throws Exception { } private static void getTest(String strURL, String saveFilePath) { // 构造HttpClient的实例 HttpClient httpClient = new HttpClient(); // 创建GET方法的实例 GetMethod getMethod = new GetMethod(strURL); // 使用系统提供的默认的恢复策略 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); getMethod.setRequestHeader("X-Up-Calling-Line-ID", "13800138006"); getMethod.setRequestHeader("Accept", "image/png,image/jpeg,image/Gif"); try { // 执行getMethod int statusCode = httpClient.executeMethod(getMethod); if (statusCode != HttpStatus.SC_OK) { System.err.println("Method failed: " + getMethod.getStatusLine()); } // //读取内容 // byte[] responseBody = getMethod.getResponseBody(); // //处理内容 // System.out.println(new String(responseBody)); InputStream stream = getMethod.getResponseBodyAsStream(); DataInputStream in = new DataInputStream(stream); File savedFile = new File(saveFilePath); RandomAccessFile oSavedFile = new RandomAccessFile(savedFile, "rw"); byte[] inc = new byte[1024]; int insize = 0; while ((insize = in.read(inc)) != -1) { oSavedFile.write(inc, 0, insize); } oSavedFile.close(); in.close(); } catch (HttpException e) { // 发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println("Please check your provided http address!"); e.printStackTrace(); } catch (IOException e) { // 发生网络异常 e.printStackTrace(); } finally { // 释放连接 getMethod.releaseConnection(); } } }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值