J2ME获取移动手机号码

        J2ME本身的API是没有提供这个方法的,但是我们通过CMWAP连接的时候,通过移动的网关来获取,当然,前提是移动的网关要提供这个功能。 
        如果网关支持这个功能的话,我们就可以通过服务器端来获得手机号码了,以下代码可以做为测试,看看你连接的移动网关是不是支持:

     public   static   string  GetPhoneNumber(HttpRequest request)
        {
            
string  phone  =   ""  ;
            NameValueCollection coll 
=   null  ;
            
try
            {
                coll 
=  request.ServerVariables ;
            }
            
catch  {}
            
try
            {
                
if  (phone  ==   "" )
                {
                    phone 
=  coll[ " HTTP_X_UP_CALLING_LINE_ID " ].ToString() ;
                }
            }
            
catch  {}
            
try
            {
                
if  (phone  ==   "" )
                {
                    phone 
=  coll[ " MISC_MSISDN " ].ToString() ;
                }
            }
            
catch  {}
            
try
            {
                
if  (phone  ==   "" )
                {
                    phone 
=  coll[ " x-up-calling-line-id " ].ToString() ;
                }
            }
            
catch  {}
            
try
            {
                
if  (phone  ==   "" )
                {
                    phone 
=  coll[ " HTTP_X_NOKIA_MSISDN " ].ToString() ;
                }
            }
            
catch  {}
            
try
            {
                
if  (phone.Length  >   11 )
                {
                    phone 
=  phone.Substring( 2 ) ;
                }
            }
            
catch (Exception ex)
            {
                phone 
=  ex.Message ;
            }

            
return  phone ;
        }

 

客房端可以写个简单的测试程序。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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(); } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值