【问题标题】:Are there any samples/tutorials which tells how to call servlets on J2EE server from iPhone app?是否有任何示例/教程告诉如何从 iPhone 应用程序调用 J2EE 服务器上的 servlet?
【发布时间】:2011-01-24 05:00:07
【问题描述】:

很抱歉发布基本问题,但请给我您的建议。

我必须编写与部署在 Tomcat 服务器上的 Web 应用程序通信的 iOS 应用程序。 Web 应用程序需要客户端应用程序使用用户名和密码调用“登录”servlet 以获取 JSESSIONID。一旦客户端获得 JSESSIONID,Web 应用程序就允许调用其他 servlet。 但我不知道如何管理会话以调用这些 servlet。

能否请您向我介绍示例/教程以了解如何调用这些类型的 servlet?

提前谢谢你。

【问题讨论】:

    标签: objective-c xcode tomcat servlets


    【解决方案1】:

    这是一个从 iOS 发出 http 请求的好例子: iOS: How to make a secure HTTPS connection to pass credentials?

    调用 j2ee tomcat 服务器并没有什么神奇之处——它只是一个 HTTP 请求,所以任何可以发出 HTTP 请求的方式都对你有用。

    也许这个也是: Can I make POST or GET requests from an iphone application?

    编辑:啊,看起来这是你想要的: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

    【讨论】:

    • 您好 xaxxon,感谢您的快速回复!我会检查他们。
    • 请记住,您进行调用的方式是一个 HTTP 请求。所需的参数特定于您的应用程序 - 没有任何文档告诉您如何调用您的特定服务。
    • 谢谢。我还在检查你提到的文件。据我了解,iOS SDK并没有提供处理webapp发出的JSESSIONID的API,所以我们必须自己编写代码,对吧?
    • 是的,我认为没有任何东西会神奇地为您处理会话 ID。如果您发现我的回答足够有帮助并愿意接受,我将不胜感激。
    【解决方案2】:

    JSESSIONID 没什么特别的。如果您的应用程序设置为处理从 HTTP 请求返回的 cookie,那么 JSESSIONID 将作为 cookie 在标头中返回。否则,您将被重定向到其中包含 JSESSIONID 的 URL。从那里开始,如果您处理 cookie,则 JSESSIONID 将随每个请求与所有其他 cookie 一起自动传递。否则,您必须手动将其放入每个请求的 URL。

    下载 Firefox 的 liveheaders 插件并尝试使用 webbrowser 访问您的 servlet,您可以看到 JSESSIONID 是如何传递的。接下来,在 Firefox 中关闭 cookie,您可以看到它是如何在 URL 中传递的,如果您查看 liveheaders 中的标头,您可以看到 Tomcat 发出的重定向。

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      相关资源
      最近更新 更多