文档开发者中心
我的

<如何开发快应用 7>API 网络

1 数据请求
1.1 接口声明
{"name": "system.fetch"}

1.2 导入模块
import fetch from ´@system.fetch´ 或 var fetch = require("@system.fetch")

1.3 fetch.fetch(OBJECT)
       获取网络数据。
参数
参数类型必填说明
urlString是资源url
dataString/Object否请求的参数,可以是字符串,或者是json对象。
● 如果是字符串,其值作为请求的body,请求的Content-Type默认会被设置为text/plain。
● 如果是json对象,会将其所有属性使用urlencode编码,组成一个字符串作为请求的body,请求的Content-Type默认会被设置为application/x-www-form-urlencoded。示例:{"name": "abc","count": 2}
● 假如通过header明确设置了Content-Type,则以header中设置的Content-Type为准
headerObject否请求的header,会将其所有属性设置到请求的header部分。useragent设置无效。
示例:{"Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,en-US;q=0.8,en;q=0.6"}
methodString否默认为 GET,可以是:OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT
successFunction否成功返回的回调函数,其返回值如表1-1所示。
failFunction否失败的回调函数,可能会因为权限失败。
completeFunction否结束的回调函数(调用成功、失败都会执行)。

       表1-1 success返回值

参数名类型说明
codeNumber服务器状态code。
dataString如果服务器返回的header中type是text/*或application/json、application/javascript、application/xml,值是文本内容,否则是存储的临时文件的uri临时文件如果是图片或者视频内容,可以将图片设置到image或video控件上显示。
headersObject服务器response的所有header。

示例
fetch.fetch({
  url:"http://www.example.com",
  success:function(data){
    console.log("title: " + JSON.parse(data.data).title);
  },
  fail: function(data, code) {
    console.log("handling fail, code=" + code);
  }
})


1.4 安全要求
       对于HTTPS请求,对证书要求如下:
       ● HTTPS证书必须有效。

证书必须被系统信任,不支持自签名证书,部署SSL证书的网站域名必须与证书颁发的域名一致,证书必须在有效期内。
       ● TLS必须支持1.1及以上版本。
部分旧Android机型(4.4以下)还未支持TLS 1.1,请确保HTTPS服务器的TLS版本能够同时支持TLS 1.1及以下版本,从安全性考虑,建议也支持TLS1.2,在配置加密套件时排除不安全算法:DES/3DES(除密钥K1≠K2≠K3外的场景)/SKIPJACK/RC2/RC4/MD2/MD4/SHA1/MD5/ANON/。
       部分CA可能不被操作系统信任,请开发者在选择证书时注意Android系统的相关通告。
2 上传下载
2.1 接口声明
{"name": "system.request"}

2.2 导入模块
import request from ´@system.request´ 或 var request = require("@system.request")

2.3 request.upload(OBJECT)
       上传文件。
参数
参数类型必填说明
urlString是资源url
headerObject否请求的header,会将其所有属性设置到请求的header部分。useragent设置无效。
methodString否默认为POST,可以是: POST,PUT
filesArray是需要上传的文件列表,使用multipart/form-data方式提交。
files参数是一个file对象的数组,file对象的结构如表2-1所示。
dataArray否HTTP请求中其他额外的form data。
successFunction否成功返回的回调函数,其返回值如表2-3所示。
failFunction否失败的回调函数。
completeFunction否结束的回调函数(调用成功、失败都会执行)。

       表2-1 files参数说明

参数类型必填说明
filenameString否multipart提交时,header中的文件名。如果文件名未填,默认从uri中获取文件名上传。
nameString否multipart提交时,表单的项目名,默认file。
uriString是文件的本地地址。
typeString否文件的Content-Type格式,不填则会根据filename或uri的后缀从系统的映射表中查询对应的content-type,假如获取失败则报参数非法异常。

       表2-2 data说明

参数类型必填说明
nameString是form元素的名称。
valueString是form元素的值。

       表2-3 success返回值

参数名类型说明
codeNumber服务器状态code。
dataString如果服务器返回的header中type是text/*或application/json、application/javascript、application/xml,值是文本内容,否则是存储的临时文件的uri临时文件,如果是图片或者视频内容,可以将图片设置到image或video控件上显示。
headersObject服务器response的所有header。

示例
request.upload({
    "url": "http://www.example.com",
    "files": [
        {
            "uri": "internal://xxx/xxx/test",
            "name": "file1",
            "filename": "test.png"
        }
    ],
"data": [
        {
            "name": "key1",
            "value": "value1"
        }
    ],
success:function(data){console.log("handling success");}
    fail: function(data, code) {
      console.log("handling fail, code=" + code);
    }
})


2.4 request.download(OBJECT)
       下载文件。
参数
参数类型必填说明
urlString是资源url
headerObject否请求的header,会将其所有属性设置到请求的header部分。useragent设置无效。
successFunction否成功返回的回调函数,其返回值如表2-4所示。
failFunction否失败的回调函数。
completeFunction否结束的回调函数(调用成功、失败都会执行)。

       表2-4 success返回值

参数名类型说明
tokenString下载的token,根据此token获取下载状态。

示例
request.download({
    "url": "http://www.example.com",
    success:function(data){console.log("handling success" + data.token);}
    fail: function(data, code) {
      console.log("handling fail, code=" + code);
    }
})


2.5 request.onDownloadComplete(OBJECT)
       监听下载任务。
参数
参数类型必填说明
tokenString是download接口返回的token。
successFunction否成功返回的回调函数,其返回值如表2-5所示。
failFunction否失败的回调函数,其返回错误码如表2-6所示。
completeFunction否结束的回调函数(调用成功、失败都会执行)。

       表2-5 success返回值

参数名类型说明
uriString下载文件的Uri,会存储在文件组织的mass分区下。

       表2-6 fail返回错误码

错误码说明
1000下载失败。
1001下载任务不存在。

示例
request.onDownloadComplete({
    "token": "123",
    success:function(data){
      console.log("handling success" + data.uri);
    }
    fail: function(data, code) {
      console.log("handling fail, code=" + code);
    }
})


点赞
收藏
1
回复
分享
举报
浏览1489 发布于2018-05-04 03:17未知归属地
全部评论
最多点赞
最新发布
最早发布
暂无评论
暂无评论
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。