java - 使用iOS iPad2连接并登录运行HTTP服务的Java服务器

标签 java ios xcode dns bonjour

我正在使用 Xcode 4.4.1 为 iPad2 编写 iOS 5.1.1 应用程序。我希望能够找到在 Java 上运行的本地 http 服务器。

一旦我能够连接到 http 服务器,我需要与它通信的就是包含端口的 url。

我的问题:

1) 我应该使用 Bonjour 或在 http 服务器上运行的 DNS 服务器来发现 http 服务器本身吗?

2) 我需要使用名称和密码对 iPad2 用户进行身份验证,以便在发现 http 服务器后使用它。

我需要一些帮助来了解如何完成这两个步骤,包括源代码(如果适用于 iOS 5 和 Xcode 4.4.1)。

最佳答案

1) Bonjour 很容易与 Java 应用程序结合使用。如果您特别受虐,您可以编写自己的基于 Java 的 mDNS (Bonjour) 响应程序(我已经完成了,这不是火箭科学),但最快的方法是使用 jMDNS在你的 http 服务器中宣传它的存在。我不会复制和粘贴代码示例,但它们足以满足大多数应用程序的需求。

在 iOS 端,NSNetService是你的 friend 。从根本上讲,它涉及在后台启动响应程序来查找服务(即您的 Java 应用程序),然后在某些内容出现/消失时调用委托(delegate):

id delegateObject; // Assume this exists.
NSNetServiceBrowser *serviceBrowser;

serviceBrowser = [[NSNetServiceBrowser alloc] init];
[serviceBrowser setDelegate:delegateObject];
[serviceBrowser searchForServicesOfType:@"_http._tcp" inDomain:@""];

有一个guide这就解释了这一切。该协议(protocol)已经 10 多年没有改变,并且所有现代 iOS/OS X 版本都支持它。 jMDNS 库在这个阶段也经过了很好的考验。

如果您不希望搜索 _http._tcp 的其他应用看到该服务类型,您可以考虑创建自己的服务类型。,尽管这只是装饰性的东西。

2) 最简单的方法是 HTTP 基本身份验证;您没有说明您的应用程序支持哪种身份验证或如何在客户端发出 HTTP 请求,但这是 prettycovered已经。

关于java - 使用iOS iPad2连接并登录运行HTTP服务的Java服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12307016/

相关文章:

java - apache.commons.lang3.DateUtils.setMonths 十二月

java - 如何从动态创建的HTML表格中获取特定行的单元格数据?

ios - 如何使我的应用程序创建/下载的文件显示在"file"应用程序中?

ios - 在 iOS 10 中使用 URL 方案打开 Game Center 不再有效

ios - 部分错误 Swift 中的行数

iphone - 无法在 EKEvent 中编程开始日期

iphone - 如何在点击时更改 UIView 的样式?

java - 线程 "main"中的异常 org.hibernate.MappingException : Unknown entity

ios - 使用 Xcode 和 Cocoapods 进行代码签名

java - 带有条件运算符的奇怪 Java 行为。这是一个错误吗?