Ibm mobilefirst Worklight http适配器问题

Ibm mobilefirst Worklight http适配器问题,ibm-mobilefirst,worklight-adapters,Ibm Mobilefirst,Worklight Adapters,2个简单的问题: 所有通过http适配器发出的http请求是否首先通过worklight服务器 如果是这样的话,这是否意味着即使是对公共网站的http适配器请求,比如对雅虎网站的股票价格请求也会首先通过worklight server,然后通过雅虎网站旁边的服务器?如果是,那么如何在不通过worklight服务器的情况下发出http请求?我只想直接进入yahoo网站而不使用“中间”服务器(即Workigth服务器) 我认为您遗漏了关于WL中适配器体系结构的一个要点。适配器位于服务器中,因此根据定

2个简单的问题:

  • 所有通过http适配器发出的http请求是否首先通过worklight服务器

  • 如果是这样的话,这是否意味着即使是对公共网站的http适配器请求,比如对雅虎网站的股票价格请求也会首先通过worklight server,然后通过雅虎网站旁边的服务器?如果是,那么如何在不通过worklight服务器的情况下发出http请求?我只想直接进入yahoo网站而不使用“中间”服务器(即Workigth服务器)


  • 我认为您遗漏了关于WL中适配器体系结构的一个要点。适配器位于服务器中,因此根据定义,您使用它发出的任何请求都将“通过”服务器。但是,信息不会通过WAS(或Tomcat)服务器传递

    您不想使用适配器有什么原因吗?我建议使用它,因为无论是从RESTful http调用还是数据库查询,它都可以更轻松地提取数据


    如果您确实想绕过适配器,则跨域授权存在问题。我在这方面没有太多经验,但是您可以使用jQuery.ajax()之类的工具来解决这个问题。

    如果您在客户端使用适配器API,那么您的请求将通过Worklight服务器进行处理。您仍然可以从客户端发出AJAX请求并跳过服务器。基本上,您将以与Cordova相同的方式发出服务器请求,这意味着使用白名单允许您的请求访问第三方服务器

    1) 所有通过http适配器发出的http请求是否都通过 worklight服务器优先

    对。Worklight适配器通过使用在Worklight服务器上执行JavaScript来工作。您可以在中阅读有关适配器的更多信息。查看以了解适配器特定的详细信息。下面还有一些代码示例,您可以尝试。API文档在中。还有一个关于适配器的讨论,您可能会发现它很有用

    2) 如果是这样的话,那么这是否意味着对公共web的http适配器请求 该网站表示,向雅虎网站索要股票价格的请求也将通过 worklight server先是,然后是yahoo网站旁边

    我只想直接进入雅虎网站,而不需要 “中间”服务器(即Workigth服务器)

    IBM Worklight附带jQuery,您可以使用。下面是一个例子:

    WLJQ.ajax( "http://finance.yahoo.com/d/quotes.csv?s=DOW+MSFT+AAPL+GOOG&f=snl1" )
    .done(function (data) {
        console.log(data);
    });
    
    请注意,WLJQ是Worklight提供的jQuery版本的名称空间。您可以通过执行以下操作来使用
    jQuery
    $
    var$=WLJQ
    var jQuery=WLJQ

    你应该得到像这样的东西:

    "DOW","Dow Chemical Comp",30.89
    "MSFT","Microsoft Corpora",27.37
    "AAPL","Apple Inc.",448.97
    "GOOG","Google Inc.",790.13
    

    当然,您可以使用简单的jquery ajax调用直接访问它,而无需调用任何适配器函数

    $.ajax({
           url: url,
           data: data,
           success: success,
           dataType: dataType
    });
    

    是否所有通过http适配器发出的http请求都通过worklight 服务器优先

    绝对不是,这完全取决于你。如果您使用的是HTTP适配器,那么HTTP请求将从Worklight服务器启动,并返回响应

    如果是这样的话,那么这是否意味着对公共web的http适配器请求 该网站表示,向雅虎网站索要股票价格的请求也将通过 worklight server先是,然后是yahoo网站旁边?如果是的话,怎么办 我是否在不通过worklight服务器的情况下发出http请求?我 只想直接进入雅虎网站而不需要“中间人” 服务器(即Workigth服务器)

    如果您使用的是HTTP适配器,那么它将按照第一个答案通过Worklight Server

    如果您不需要中间服务器,那么您可以使用传统的方式来执行HTTP请求,否则您可以通过Javascript/Ajax层或本机(Android/iOS/Windows..)执行HTTP请求


    当谈到Worklight用于确保从注册设备启动请求的安全性时,适配器非常有用-身份验证通过交换设备令牌等方式完成。

    请回答一个问题,worklight server是WAS中的web应用程序,因此它怎么能不通过WAS?worklight server是在WAS或Tomcat中运行的JEE应用程序,因此使用适配器API的请求确实通过WAS/Tomcat进行。我不知道Ralph的观点,它似乎是错误的,因此-1.如果您不使用Worklight应用程序,这非常好;在Worklight环境中,您必须了解不通过Worklight Server的后果,@candreu已经在下面回答了这个问题。这个答案没有太大价值。如果使用worklight,适配器服务将处理xml到json的转换、负载平衡、每秒并发节点连接和超时情况。如果需要在这些情况下进行任何更改,适配器将帮助您,而无需更改应用程序中的任何内容。
    $.get(url, function() {
        alert( "success" );
    })
    .done(function() {
        alert( "second success" );
    })
    .fail(function() {
        alert( "error" );
    })
    .always(function() {
       alert( "finished" );
    });