2012-09-06 46 views
0

我正在爲使用Xcode 4.4.1的iPad2編寫iOS 5.1.1應用程序。我希望能夠找到在Java上運行的本地http服務器。使用iOS iPad2連接並登錄到運行HTTP服務的Java服務器

一旦我能夠連接到http服務器,我需要與它通信的是包含端口的url。

我的問題:

1)我應該使用Bonjour或DNS服務器的HTTP服務器上運行,以發現HTTP服務器本身?

2)我需要使用名稱和密碼驗證iPad2用戶,一旦發現它就可以與http服務器一起工作。

我需要一些幫助,瞭解如何完成這兩個步驟,包括源代碼(如果適用於iOS 5和Xcode 4.4.1)。

回答

1

1)Bonjour很容易搭配Java應用程序。如果你特別受虐狂,你可以編寫你自己的基於Java的mDNS(Bonjour)響應者(我已經完成了,這不是火箭科學),但最快的方法是在你的http服務器中使用jMDNS來宣傳它的存在。我不會複製&粘貼代碼示例,但它們足以滿足大多數應用程序的需求。

在iOS端,NSNetService是你的朋友。從根本上講它涉及在後臺啓動響應者尋找服務(即你的Java應用程序),然後調用委託的東西出現時/消失:

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

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

有一個guide解釋這一切。該協議在10年以上沒有變化,您可以依賴所有支持它的現代iOS/OS X版本。 jMDNS庫在這個階段也經過了很好的戰鬥測試。

如果您不想讓搜索_http._tcp.的其他應用可以看到您的服務類型,您可以考慮創建自己的服務類型,不過這只是一個美觀的事情。

2)最簡單的工作將是HTTP基本身份驗證;你沒有說你的應用程序支持什麼樣的身份驗證,或者你如何在客戶端發出HTTP請求,但這已經是prettycovered了。

+0

謝謝你的幫助。我很感激。 –