如何在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 目标
Worklight 6.0 - 如何使用 dojo 1.9 和 worklight 6.0 为 android 2.2 创建和部署 dojo 启用 worklight 混合应用程序