来自 Windows 应用程序的资源请求

improve this page | report issue

概述

MobileFirst Operations Console 应用程序可以使用 WorklightResourceRequest RESTAPI 访问资源。
REST API 将使用所有适配器和外部资源。

先决条件

WLResourceRequest

WorklightResourceRequest 类可处理对适配器或外部资源的资源请求。

创建 WorklightResourceRequest 对象并指定资源路径和 HTTP 方法。
可用方法包括:GETPOSTPUTDELETE

URI adapterPath = new URI("/adapters/JavaAdapter/users",UriKind.Relative);
WorklightResourceRequest request = WorklightClient.ResourceRequest(adapterPath,"GET");
  • 对于 JavaScript 适配器,请使用 /adapters/{AdapterName}/{procedureName}
  • 对于 Java 适配器,请使用 /adapters/{AdapterName}/{path}path 取决于您如何在 Java 代码中定义 @Path 注释。 这也将包含您使用的任何 @PathParam
  • 要访问项目外面的资源,请根据外部服务器的需求使用完整 URL。
  • 超时:可选,请求超时(毫秒)
  • 作用域:可选,如果您知道哪个作用域将保护资源 - 指定此作用域可以使请求更高效。

发送请求

使用 .send() 方法请求资源。

WorklightResponse response = await request.send();

使用 WorklightResponse response 对象获取从适配器检索的数据。

response 对象包含响应数据,并且您可以使用其方法和属性来检索必需信息。 常用属性包括:ResponseTextResponseJSON(如果以 JSON 格式响应)、Success(调用成功还是失败)和 HTTPStatus(响应的 HTTP 状态)。

参数

在发送请求之前,您可能希望根据需要添加参数。

路径参数

如上所述,在创建 WorklightResourceRequest 对象期间设置路径参数 (/path/value1/value2):

Uri adapterPath = new Uri("/adapters/JavaAdapter/users/value1/value2",UriKind.Relative);
WorklightResourceRequest request = WorklightClient.createInstance(adapterPath,"GET");

查询参数

要发送查询参数 (/path?param1=value1...),请对每个参数使用 SetQueryParameter 方法:

request.SetQueryParameter("param1","value1");
request.SetQueryParameter("param2","value2");

JavaScript 适配器

JavaScript 适配器使用有序的无名参数。 要将参数传递到 JavaScript 适配器,请设置名称为 params 的参数数组:

request.SetQueryParameter("params","['value1', 'value2']");

这应该与 GET 一起使用。

表单参数

要发送主体中的表单参数,请使用 .Send(Dictionary<string, string> formParameters) 代替 .Send()

Dictionary<string,string> formParams = new Dictionary<string,string>();
formParams.Add("height", height.getText().toString());
request.Send(formParams);

JavaScript 适配器

JavaScript 适配器使用有序的无名参数。 要将参数传递到 JavaScript 适配器,请设置名称为 params 的参数数组:

formParams.Add("params","['value1', 'value2']");

这应该与 POST 一起使用。

头参数

要将参数作为 HTTP 头发送,请使用 .SetHeader() API:

request.SetHeader(KeyValuePair<string,string> header);

其他定制主体参数

  • .Send(requestBody) 允许您在主体中设置任意字符串。
  • .Send(JObject json) 允许您在主体中设置任意字典。
  • .Send(byte[] data) 允许您在主体中设置任意字节数组。

响应

WorklightResponse 对象包含响应数据,并且您可以使用其方法和属性来检索必需信息。 常用属性包括:ResponseText(字符串)、ResponseJSON (JSONObject)(如果以 JSON 格式响应)和 success(布尔)(响应的成功状态)。

在请求失败情况下,response 对象还包含 error 属性。

获取更多信息

有关 WLResourceRequest 的更多信息,请参阅 API 参考 (http://public.dhe.ibm.com/software/products/en/MobileFirstPlatform/docs/v800/mfpf_csharp_win8_native_client_api.pdf)。

样本应用程序的图像

样本应用程序

ResourceRequestWin8 和 ResourceRequestWin10 项目包含一个本机 Windows 8 Universal/Windows 10 UWP 应用程序,该应用程序使用 Java 适配器发出资源请求。
适配器 Maven 项目包含在资源请求调用期间使用的 Java 适配器。

单击以下载 Windows 8.1 Universal 项目。
单击以下载 Windows 10 UWP 项目。
单击以下载适配器 Maven 项目。

样本用法

遵循样本的 README.md 文件获取指示信息。

Last modified on October 05, 2017