BlackBerry开发连接HTTP或Socket的五种方式

移动开发
BlackBerry开发有很多值得学习的地方,你对他的概念是否熟悉,本文向大家简单介绍一下BlackBerry开发连接HTTP或Socket的五种方式。

本文和大家重点学习一下BlackBerry开发连接HTTP或Socket的五种方式,在BlackBerry开发中,网络相关的设置有时候比较令人困惑,下面是一篇关于网络设置编程的文章,请看本文详细介绍。

BlackBerry开发连接HTTP或Socket的五种方式

BlackBerry的API提供了五种方式来进行HTTP或者socket连接,包括:

1,BlackBerryEnterpriseServer(BES)方式

这种方式通过使用BES的BlackBerryMDSServices来进行网络连接,BlackBerryMDSServices负责处理所有的浏览器请求或者连接请求、并负责数据加密,这是黑莓手机的默认连接方式,如下:

例1:(HttpConnection)Connector.open("http://www.testserver.com");

以上代码会自动将BlackBerryMDSServices作为它的默认连接路径。实际开发中,如果要确保应用程序使用usesBlackBerryMDSServices作为它的连接路径,需要在URL最后加上参数“deviceside=false”,这也是我们推荐的方式,如下:

例2:(HttpConnection)Connector.open(“http://www.testserver.com;deviceside=false”);

2,BlackBerryInternetServie方式

这种方式是为第三方提供的连接接口,它对数据不进行加密,用户可以通过使用HTTPS和SSL来进行安全的连接。注:目前仅对加入了BlackBerryAllianceProgram的第三方开放合作伙伴开放,详情参考:http://na.blackberry.com/eng/partners/alliance.jsp

3,DirectTCP方式

这种方式允许在没有使用BlackBerryMDS的黑莓手机上直接TCP连接。为了能启用directTCP方式,用户需要在手机的“选项-高级选项-TCP/IP”中设置APN,以及相应的用户名和密码。

注1:运行在iDEN网络上的黑莓手机(包括6510、7510、7520和7100i),如果不指定deviceside参数(如例1),默认的连接是directTCP;非运行在iDEN网络上的其他黑莓手机,如果不指定deviceside参数,默认的连接是BlackBerryMDS。

注2:如果连接时BlackBerryMDS不存在,黑莓手机也会自动采用directTCP方式。

因此,如果要将directTCP作为黑莓手机的默认连接方式,我们建议在URL中加入“deviceside=true”参数,如下:

例3:(StreamConnection)Connector.open("socket://testserver:600;deviceside=true");


4,Wi-Fi

如果需要在Wi-Fi上创建网络连接,不需要在应用程序中考虑特别的底层逻辑,可以在URL中加入参数“interface=wifi”就能实现Wi-Fi连接,如下:

例4:(StreamConnection)Connector.open(“socket://testserver:600;interface=wifi”);

5,WAP1.x

并不是所有的移动运营商都支持通过WAP网关进行连接的,所以如果要创建WAP连接,开发者需要和移动运营商联系,获取是否提供这种支持、并且获取他们的WAP网管参数。

以下是一个基于WAP网关进行HTTP连接的例子:

例5:(HttpConnection)Connector.open("http://wap.google.com;WAPGatewayIP=127.0.0.1;WAPGatewayAPN=carrier.com.gprs");

注:其中WAPGatewayIP和WAPGatewayAPN这两项参数必须指定,参数之间用“;”隔开,以下是所有的WAP参数列表,实际开发时请根据运营商提供的信息决定哪些参数需要设置。

6.WAP2.0

如果要连接WAP2.0的网关,需要在连接时指定servicerecord、以及UID。以下代码说明了WAP2.0的连接时如何工作的:

例5: 

  1. ServiceBookServiceBooksb=ServiceBook.getSB();  
  2. ServiceRecord[]records=sb.findRecordsByCid("WPTCP");  
  3. Stringuid=null;  
  4.  
  5. for(inti=0;i<records.length;i++)  
  6. {  
  7. //Searchthroughallservicerecordstofindthe  
  8. //validnon-Wi-Fiandnon-MMS  
  9. //WAP2.0GatewayServiceRecord.  
  10. if(records[i].isValid()&&!records[i].isDisabled())  
  11. {  
  12.  
  13. if(records[i].getUid()!=null&&records[i].getUid().length()!=0)  
  14. {  
  15. if((records[i].getUid().toLowerCase().indexOf("wifi")==-1)&&  
  16. (records[i].getUid().toLowerCase().indexOf("mms")==-1))  
  17. {  
  18. uid=records[i].getUid();  
  19. break;  
  20. }  
  21. }  
  22. }  
  23. }  
  24. if(uid!=null)  
  25. {  
  26.  
  27. //openaWAP2connection  
  28. Connector.open(_url+";ConnectionUID="+uid);  
  29. }  
  30. else  
  31. {  
  32. //Consideranothertransportoralternativeaction.  
  33. }  
  34.  

 
用户常见的问题:

1,为什么基于WAP连接的应用在未激活BES的手机上测试没问题,在激活BES的手机上连接不上?

答:在连接时采用的是本文例1的连接方式。解决方案是改为采用本文例5的连接方式。

2,通过Wi-Fi如何连接到BES,BIS?可以直接连接到其他目的地址么?

答:Wi-Fi可以通过BBI连接到BES和BIS,也可以通过在Wi-Fi上配置VPN直接连接到BES。也可以绕开BBI、BES和BIS直接连接到其他server。

【编辑推荐】

  1. BlackBerry开发中Windows+eclipse环境配置及Helloworld
  2. 九步实现BlackBerry开发程序发布应用到app world
  3. BlackBerry开发中七步实现创建app world账号
  4. BlackBerry开发环境中javaloader使用详解
  5. 黑莓开发中黑莓手机程序访问网络能走代理服务器的三种方式
责任编辑:佚名 来源: csdn.net
相关推荐

2010-06-22 16:11:10

2009-08-22 17:08:02

家庭智能布线综合布线连接

2010-07-12 15:40:53

BlackBerry开

2022-01-07 18:53:51

元素服务端数据

2010-05-22 16:57:09

BlackBerry开

2021-02-22 10:05:30

连接池网络前端

2010-06-22 16:19:01

Black Berry

2011-11-25 10:25:27

SpringJava

2011-05-03 15:13:23

BlackBerryWidget

2011-06-01 10:24:29

PlayBookBlackBerry

2011-02-28 13:51:30

Spring事物配置

2010-08-27 09:10:15

网络隐私

2009-06-19 18:26:38

Spring事务配置

2010-08-13 13:25:53

Flex页面跳转

2018-09-10 15:58:49

2017-07-04 16:34:33

边缘计算方式

2022-12-27 14:21:42

VR

2023-07-25 10:45:48

OHScrcpy鸿蒙

2022-01-13 19:25:28

服务方式TCP

2010-08-20 13:47:11

BlackBerry应BlackBerry
点赞
收藏

51CTO技术栈公众号