HTTP发布接收端开发

在使用通用HTTP发布接口时,需要开发者首先开发数据接收程序,并部署成公网可访问的HTTP接收接口。

创建并设置HTTP发布项,参考文档发布到HTTP地址

HTTP请求参数

HTTP发布接口以POST表单的方式将数据发送到用户服务器,Content-Typeapplication/x-www-form-urlencoded; charset=UTF-8,HTTP request body格式形如a=b&c=d

POST参数列表:

参数 参数说明 备注
__sign password+”shenjianshou.cn”的md5值 用于安全校验
__sourceId 数据源ID 爬虫也有相应的数据源
__dataId 数据ID
__crawlUrl 爬取链接 当前数据的来源网页
__crawlTime 爬取时间 当前数据的爬取时间
__dataKey 当前数据的主键值
__dataVersion 当前数据的版本
__dataLatest 是否是最新数据
其他参数 当前数据按字段拆成多个参数 有多少个字段就会拆成多少个参数

POST参数举例说明:
假设一条数据如下:

{
"id": "14320215338",
"price": "1499.00",
"name": "MOCO2017秋季新品真丝荷叶边灯笼袖V领长袖衬衫MA173TOP127"
}

则POST参数大概这样:

参数 参数值
__sign c6a2d2bed8b2471e438889e7923d5d20
__sourceId 799597
__dataId 5252
__crawlUrl https://item.jd.com/14320215338.html
__crawlTime 1509416873
__dataKey 7bb6eccdb31b7ac57c8286432da79f57
__dataVersion 0
__dataLatest true
id 14320215338
price 1499.00
name MOCO2017秋季新品真丝荷叶边灯笼袖V领长袖衬衫MA173TOP127

HTTP request body为:

__sign=c6a2d2bed8b2471e438889e7923d5d20&__sourceId=799597&__dataId=5252&__crawlUrl=https%3A%2F%2Fitem.jd.com%2F14320215338.html&__crawlTime=1509416873&__dataKey=7bb6eccdb31b7ac57c8286432da79f57&__dataVersion=0&__dataLatest=true&id=14320215338&price=1499.00&name=MOCO2017%E7%A7%8B%E5%AD%A3%E6%96%B0%E5%93%81%E7%9C%9F%E4%B8%9D%E8%8D%B7%E5%8F%B6%E8%BE%B9%E7%81%AF%E7%AC%BC%E8%A2%96V%E9%A2%86%E9%95%BF%E8%A2%96%E8%A1%AC%E8%A1%ABMA173TOP127

返回结果

接口要求返回json数据,成功时固定返回

{
"result": 1,
"data": "发布成功"
}

失败时返回

{
"result": 2, //大于"1"的数值
"reason": "发布失败, 错误原因: 发布密码验证失败!" //失败原因
}

接收示例代码

PHP示例代码:

//与发布项的发布密码一致
$password = "123456";
if (empty($_POST['__sign']) ||
  md5("{$password}shenjianshou.cn") != trim($_POST['__sign'])) {
echo json_encode([
"result" => 2,
"reason" => "发布失败, 错误原因: 发布密码验证失败!"
]);
exit;
}

//TODO 这里对数据进行处理

echo json_encode(["result" => 1, "data" => "发布成功"]);
exit;

发布调试

如果发布数据的时候出现问题,神箭手会在浏览器控制台中打印HTTP地址返回的内容。如下图所示,response中的body就是返回的内容,headers是请求响应头信息,里面也可能包含一些重要信息用于调试。

如何进入浏览器控制台?以 “谷歌的Chrome浏览器” 为例,点击 “设置” ——> “更多工具” ——> “开发者工具” ——> “Console”