多任务分两次请求,其中:
* a、第一次请求,需要返回总共分的批次,以及批次号信息;
* b、第二次请求,需要根据批次号返回对应的数据文件流;
HTTP POST
request中只有一个入参key=data,示例如下:
1 | "data" : "{\"sign\":\"3AE1EA803199E3273B34244F94555B76\",\"sysTime\":\"1479795735910\",\"traceId\":\"a5NaR5wz51k6mrNUCcISWXjqs9HSWDxv\",\"offset\":\"-1\",\"size\":\"3\"}" |
request中有两个入参,key=data(数据),key=k(加密后的随机秘钥),示例如下:
1 2 | "data" : "KW75EvX/1tvjUzfHfFAsYKkmLL4xQJuoqPsT6KyQ4S3IJJPuGjxUBIMFYh+oRI0+RnPdgfg07kvlzTAb3fmDsUaF0BitJyiAt0m6SFrbg8X9Z0R5UbBI0Y6VNkTovB/tHedTvlKVvtxvO823jsRTPV3vU49gg9fBGwMLeb69MPbJ0t3mO7PkV++mazlnEmY6" , // 加密后的参数 "k" : "+D4T2AFUrtFMsYjGS04e5gtrQoFNFrPPousdkc8afQg=" //随机密钥 |
备注:以下字段所有必填
参数名 | 示例(string) | 说明 |
---|---|---|
traceId | a5OPxOAuBcIybHSWDxPhpsNUiqsttNAQ | 本次请求的id号,将该id一并带回,方便问题跟踪 |
sign | 37BC2C64D415127BBEA6ED571648C388 | 参数签名 |
sysTime | 1482405340376 | 请求的时间戳 |
batchInfo | 省略 | 批次号,开发者返回,首次访问为空 |
备注:以下字段所有必填
参数名 | 示例(string) | 说明 |
---|---|---|
code | 200 | 返回错误码,枚举值详见:7、code错误码约定 |
msg | OK | 成功 |
traceId | a5OPxOAuBcIybHSWDxPhpsNUiqsttNAQ | 本次请求的id号,将该id一并带回,方便问题跟踪 |
batchInfoList | [“1”,“2”,“3”,“4”] | 批次号列表,用于分批拉取 |
sign | 37BC2C64D415127BBEA6ED571648C388 | 数据签名 |
首次返回值示例
1 2 3 4 5 6 7 | { "code" : 200 , "traceId" : "a5LitlBGeoMAcIyPBQBQBwOg51k6GSiq" , //请求的traceId带回 "msg" : "success" , "batchInfoList" : [ "1" , "2" , "3" , "4" ], //数据部分 "sign" : "D5033494985DA52F59AE8438510E80FB" //md5(batchInfoList) } |
第二次请求数据时,需要返回一个zip文件流,文件满足以下条件:
* a、每个zip文件能独立解压
* b、每个zip文件解压后,是csv格式的文本文件,编码UTF-8,以csv后缀,如xx.csv
* c、每个csv文件第一行是表头
* d、各个字段之间通过不可见字符(‘\u0001’)间隔
* e、每个key对应的value是个string
* f、如value为object或者array,需要输出为json序列化的字符串;如object采用{…}结构,array采用[]结构
* g、如value为普通string,但是中间可能包含双引号(“或"),需要输出为json序列化的字符串
代码提取地址:http://yunpan.taobao.com/s/71sepP5fL7 (提取码:HjGW3M)
类文件名 | 说明 |
---|---|
DataPullParallelSdkServlet.java | 实现基类 |
DataPullParallelAesServlet.java | 加密模式代码示例 |
DataPullParallelSignServlet.java | 签名模式代码示例 |
PullDataParallelAesTest.java | 加密模式,模拟测试代码 |
PullDataParallelSignTest.java | 签名模式,模拟测试代码 |
错误码 | 说明 |
---|---|
200 | 成功 |
400 | 参数异常 |
403 | 签名验证失败 |
404 | 没有数据,数据拉取结束符 |
500 | 参数异常 |