如何在worklight 8.0 android中使用WLResourceRequest

Posted

技术标签:

【中文标题】如何在worklight 8.0 android中使用WLResourceRequest【英文标题】:How to use WLResourceRequest in worklight 8.0 android 【发布时间】:2019-11-28 13:51:32 【问题描述】:

我是 worklight 的新手,目前从事混合 android 项目并遵循 worklight 8.0 文档。

对于 Java 适配器,请使用 /adapters/AdapterName/path。 路径取决于您如何在 Java 代码中定义 @Path 注释。这还包括您使用的任何@PathParam

我的问题是, 1.路径是什么? 2.没有找到@Path注解?

谁能指导我如何在android中使用WLResourceRequest。

//Here I'm using javascript adapters
    URI adapterPath = new URI("/adapters/adapter name/procedure name");
        WLResourceRequest request = new WLResourceRequest(adapterPath, WLResourceRequest.POST);
                    request.setHeaders(getHeaders());
        request.setTimeout(30000);
                    request.send(jSONString, wlResponseListener);

【问题讨论】:

【参考方案1】:

Java 代码中的@Path 注释:它被称为 JAVA 适配器代码。

例如,如果您有如下适配器代码:

package com.sample.adapter;

import java.util.logging.Logger;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;

@Path("/")
public class JavaAdapterResource 

  //Define logger (Standard java.util.Logger)
    static Logger logger = Logger.getLogger(JavaAdapterResource.class.getName());

 //Path for method: "<server address>/Adapters/adapters/JavaAdapter/username"
    @GET
    @Path("/username")
    public String helloUser(@PathParam("username") String name)
        return "Hello " + name;
    

@Path("/") 在类定义确定此资源的根路径之前。如果您有多个资源类,则应为每个资源设置不同的路径。

例如,如果您有一个带有 @Path("/users") 的 UserResource 来管理博客的用户,则可以通过 http(s)://host:port/ProjectName/adapters/AdapterName/users 访问该资源/.

同一个适配器可能包含另一个资源 PostResource 和 @Path("/posts") 来管理博客的帖子。可通过 http(s)://host:port/ProjectName/adapters/AdapterName/posts/ URL 访问它。

在上面的例子中,因为它只有一个资源类,所以它被设置为@Path("/"),以便可以通过 http(s)://host:port/Adapters/adapters/JavaAdapter 访问它/.

每个方法前面都有一个或多个 JAX-RS 2.0 注释,例如“HTTP 请求”类型的注释,例如 @GET、@PUT、@POST、@DELETE 或 @HEAD。此类注释定义了如何访问该方法。

另一个例子是@Path("/username"),它定义了访问这个过程的路径(除了资源级路径)。如您所见,此路径可以包含可变部分。然后将该变量用作方法的参数,定义为 @PathParam("username") String name

查看以下链接了解更多详情

i.Resource request from JavaScript (Cordova, Web) applications

ii.Creating JAVA Adapters

iii.ResourceRequestCordova sample app

iv.Sample Adapter code

【讨论】:

Kallnnavar 我已按照您的步骤操作,并且能够将请求发送到服务器(使用 javascript 适配器)。它在没有任何参数的情况下工作正常,但是当发送带有参数的请求时,我总是收到 500 错误。请看我添加了代码。 您必须将内容类型设置为 application/x-www-form-urlencoded 或使用 resourceRequest.sendFormParameters(formParams);而是 request.send 在此处阅读更多信息mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/…

以上是关于如何在worklight 8.0 android中使用WLResourceRequest的主要内容,如果未能解决你的问题,请参考以下文章

将 windows phone 8.0 phonegap 应用程序从 worklight 6.0 移动到 worklight 6.1

IBM Worklight 8.0 Adapter 调用 Java 代码

IBM Worklight 5.0.5.2 - 如何更改 Android 包名称

如何在 Worklight Studio 中设置 Android SDK 目标

如何在 ibm worklight 中打开本机摄像头

Worklight 6.0 - 如何使用 dojo 1.9 和 worklight 6.0 为 android 2.2 创建和部署 dojo 启用 worklight 混合应用程序