任何人都能解释一下当我从黑莓设备发送Http请求时会发生什么吗?
我听到了很多东西,我对MDS conncetion服务等术语感到困惑。我甚至听说我们需要更改BES中的一些设置来接收http请求。是否真的需要更改设置?
请以明确的方式解释,作为黑莓应用程序开发的新手。
答案 0 :(得分:1)
BES:将其视为由组织的所有BB设备组成的专用网络。公司通常运行自己的BES服务器,这些服务器放在他们自己的网络中并由他们控制。 BES中的每个设备只能连接到该网络中的设备,BES服务器以及可通过BES服务器(通常是其他公司应用程序服务器)访问的网络资源。通讯已加密。还提供与企业邮件系统的集成。此外,BES中的每个BB都由BES管理员管理,他们可以控制每个设备的策略 - 例如,他可以为给定设备禁用GPS或互联网。他还可以远程部署或删除设备中的应用程序。
MDS:它是BES的一个组成部分。
BIS:这是针对特定客户的。当您的BB在BIS中时,您的数据将被压缩发送到RIM服务器,该服务器将其中继到目的地。它是一个代理人。它也是允许推送邮件和消息的原因。要让您的BB进入BIS,您需要通过移动运营商签订合同。
更多信息:
http://docs.blackberry.com/en/admin/deliverables/7335/BES_overview_658676_11.jsp
答案 1 :(得分:0)
当从BlackBerry设备发送Http请求时,BlackBerry客户端应用程序使用HTTP连接到webservice / servlet并从客户端传输byte [] - > servlet - >客户。在尝试连接之前,客户端应用程序首先检查网络覆盖。
有多种方法可以创建从BlackBerry设备到HTTP服务器(Web服务,servlet等)的HTTP网络连接。这包括通过Wifi,APN / Direct TCP,BlackBerry Internet Service(BIS)和BlackBerry Enterprise Server(BES / MDS)发送Http请求,这需要您的BlackBerry连接到BES。
BlackBerry Mobile Data System(MDS)是一个灵活的应用程序开发框架,也是BlackBerry Enterprise Server(BES)的一个组件。 BlackBerry MDS提供安全性,无线连接和可管理性选项。 BlackBerry MDS Services包含在BlackBerry Enterprise Server软件中,可处理所有浏览器或连接请求并相应地路由请求。与BIS或其他连接不同,BlackBerry智能手机和BlackBerry Enterprise Server之间流动的数据经过加密,通过BlackBerry MDS建立的连接可在支持BlackBerry智能手机服务的无线服务提供商之间进行漫游。由于此连接要求手机在BES中注册,因此对运行应用程序提出了一些限制,因为并非每个用户都可以注册。因此,在为Http请求创建应用程序时,您可以键入选项以检测可用的连接(Wifi,TCP,BIS,MDS等)并确定方法的优先级以发出请求。
可以调用以下方法使http请求具有可用连接。首先是Wifi,第二个是BIS,第三个是TCP,最后是MDS。
public String checkInternetConnection()
{
String connectionString = null;
if ((WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED)&& RadioInfo.areWAFsSupported(RadioInfo.WAF_WLAN))
{
//WiFi is available
connectionString = ";interface=wifi";
}
// Is the carrier network the only way to connect?
else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT) == CoverageInfo.COVERAGE_DIRECT)
{
//Carrier coverage
String carrierUid = getCarrierBIBSUid();
if(carrierUid == null)
{
// Has carrier coverage, but not BIBS. So use the carrier's TCP network
connectionString = ";deviceside=true";
}
else
{
// otherwise, use the Uid to construct a valid carrier BIBS request
connectionString = ";deviceside=false;connectionUID="+carrierUid + ";ConnectionType=mds-public";
}
}
// Check for an MDS connection instead (BlackBerry Enterprise Server)
else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS)
{
connectionString = ";deviceside=false";
}
// If there is no connection available abort to avoid bugging the user unnecssarily.
else if(CoverageInfo.getCoverageStatus() == CoverageInfo.COVERAGE_NONE)
{
Dialog.alert("There is no available connection.");
}
return connectionString;
}
/**
* Looks through the phone's service book for a carrier provided BIBS network
* @return The uid used to connect to that network.
*/
public String getCarrierBIBSUid()
{
ServiceRecord[] records = ServiceBook.getSB().getRecords();
int currentRecord;
for(currentRecord = 0; currentRecord < records.length; currentRecord++)
{
if(records[currentRecord].getCid().toLowerCase().equals("ippp"))
{
if(records[currentRecord].getName().toLowerCase().indexOf("bibs") >= 0)
{
return records[currentRecord].getUid();
}
}
}
return null;
}