Xpages 从XPage中发布到跨域REST服务

Xpages 从XPage中发布到跨域REST服务,xpages,Xpages,从XPage中调用跨域REST服务的最佳方式是什么?我已经浏览了Social Enabler应用程序,但在这种情况下,我还需要在另一台服务器上向该服务发布一个内容字符串,然后获取JSON响应并对其进行解析 客户端Javascript无法提供跨域REST服务 有一种解决方法,如果远程服务支持,则使用JSONP。它基本上由一个脚本标记组成,该标记引用浏览器允许的远程站点上的另一个javascript资源 除此之外,如果使用服务器端REST代理,则可以从XPages调用远程服务。例如,iNotes使用

从XPage中调用跨域REST服务的最佳方式是什么?我已经浏览了Social Enabler应用程序,但在这种情况下,我还需要在另一台服务器上向该服务发布一个内容字符串,然后获取JSON响应并对其进行解析

客户端Javascript无法提供跨域REST服务

有一种解决方法,如果远程服务支持,则使用JSONP。它基本上由一个脚本标记组成,该标记引用浏览器允许的远程站点上的另一个javascript资源

除此之外,如果使用服务器端REST代理,则可以从XPages调用远程服务。例如,iNotes使用此方法与Sametime或Quickr集成


本页说明如何为您的服务配置嵌入式代理。

客户端Javascript无法提供跨域REST服务

有一种解决方法,如果远程服务支持,则使用JSONP。它基本上由一个脚本标记组成,该标记引用浏览器允许的远程站点上的另一个javascript资源

除此之外,如果使用服务器端REST代理,则可以从XPages调用远程服务。例如,iNotes使用此方法与Sametime或Quickr集成


此页面说明了如何为您的服务配置嵌入式代理。

您可以使用java URLConnection使用ssjs获取json数据,通过使用“eval”或“toJSON”,您可以将其放在重复中,并使用计算字段显示结果。

您可以使用java URLConnection使用ssjs和“eval”或“toJSON”获取json数据“toJSON”您可以将其放在重复中,并用计算字段显示结果。

有几个选项:

  • 创建一个生成json的xpage,称为xagent()
  • 在应用程序范围内创建一个bean,其中包含直接使用JavaURL连接从te服务检索数据的代码,并解析向量中的json或您可以使用的任何其他java对象
  • 除了在事件代码中直接构造url连接的实例外,执行与2相同的操作
  • 对于选项2和选项3,您可以使用如下代码

    URL url = new URL(http://yourresthot/restapi);
    HttpCOnnection conn = url.openConnection();
    
    
    if (conn.getResponseCode() != 200) {
        throw new IOException(conn.getResponseMessage());
      }
    
      // Buffer the result into a string
      BufferedReader rd = new BufferedReader(
          new InputStreamReader(conn.getInputStream()));
      StringBuilder sb = new StringBuilder();
      String line;
      while ((line = rd.readLine()) != null) {
        sb.append(line);
      }
      rd.close();
    
      conn.disconnect();
      return sb.toString();
    

    有几种选择:

  • 创建一个生成json的xpage,称为xagent()
  • 在应用程序范围内创建一个bean,其中包含直接使用JavaURL连接从te服务检索数据的代码,并解析向量中的json或您可以使用的任何其他java对象
  • 除了在事件代码中直接构造url连接的实例外,执行与2相同的操作
  • 对于选项2和选项3,您可以使用如下代码

    URL url = new URL(http://yourresthot/restapi);
    HttpCOnnection conn = url.openConnection();
    
    
    if (conn.getResponseCode() != 200) {
        throw new IOException(conn.getResponseMessage());
      }
    
      // Buffer the result into a string
      BufferedReader rd = new BufferedReader(
          new InputStreamReader(conn.getInputStream()));
      StringBuilder sb = new StringBuilder();
      String line;
      while ((line = rd.readLine()) != null) {
        sb.append(line);
      }
      rd.close();
    
      conn.disconnect();
      return sb.toString();
    
    选项1:JSONP 例子: 代码:

    选项2:Domino/iNotes代理 第05.01节

    选项3:您自己的通用代理插件 第05.02节

    选项4:如上所述。实现服务器端代码以访问其他服务器。

    选项1:JSONP 例子: 代码:

    选项2:Domino/iNotes代理 第05.01节

    选项3:您自己的通用代理插件 第05.02节


    选项4:如上所述。实现服务器端代码以访问其他服务器。

    谢谢-最后我创建了一个托管bean(我从未做过,但看到了如何使用)在那里我做了POST连接,然后在XPage中我使用bean通过调用它来获取数据。然后我在SSJS按钮中处理JSON数据。现在效果很好。谢谢-最后我创建了一个托管bean(我从未这样做过,但看到了如何使用它)在这里我做了POST连接,然后在XPage中我使用bean通过调用它来获取数据。然后我在SSJS按钮中处理JSON数据。这现在很好用。