发布到HTTP地址

该接口是将数据以Content-Type: application/x-www-form-urlencoded; charset=UTF-8的编码方式 POST 到所设置的”HTTP地址”。该发布方式更通用和灵活,但更适用于开发者。注意request body的内容并非是json格式的数据!

发布步骤

创建接收数据的HTTP地址 ——> 登录神箭手 ——> 创建发布项 ——> 手动或自动发布数据

步骤一 创建HTTP地址

开发者需要先创建一个用于接收POST数据的HTTP地址,接收到数据后如何存储和处理也是开发者自行开发完成的。接受到发布的数据后,需要返回JSON数据通知神箭手发布结果。可以参考下面PHP实现的示例代码:

接收和处理数据的PHP示例代码
<?php
/*
// 接收到的POST示例
echo json_encode($_POST);
{
// HTTP通用接口携带的额外参数, 方便接收者做验证, 防止重复发送等处理
// 验证字段
// 创建的发布项所填写的发布密码拼接"shenjianshou.cn"再md5后的值,
// 格式: md5(password + "shenjianshou.cn")
"__sign": "c6a2d2bed8b2471e438889e7923d5d20",
// 唯一标识
"__dataId": "5252",
// 爬取时间
"__crawlTime": "1509416873",
// 当前数据版本, 0为第一个版本, 1为第二个版本
"__dataVersion": "0",
// 是否为最新数据
"__dataLatest": "true",
// 数据源ID
"__sourceId": "799597",
// 爬取数据的md5值, 亦可作为数据唯一标识
"__dataKey": "7bb6eccdb31b7ac57c8286432da79f57",
// 爬取链接
"__crawlUrl": "https://item.jd.com/14320215338.html"
// 爬取的内容
"id": "14320215338",
"price": "1499.00",
"name": "MOCO2017秋季新品真丝荷叶边灯笼袖V领长袖衬衫MA173TOP127",
"params": "[{\"label\":\"商品编号\",\"value\":\"14320215338\"}]"
...
}
// 发布成功返回给神箭手发布服务
{
"result": 1,
"data": "发布成功"
}
// 发布失败返回给神箭手发布服务
{
// 大于"1"的数值
"result": 2,
"reason": "发布失败, 错误原因: 发布密码验证失败!"
}
*/
// 与发布项的发布密码一致
$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”

步骤二 登录神箭手

登录神箭手后,打开要发布的数据(可以在数据源管理中 或者 某个应用中 打开)

步骤三 创建发布项

1、点击新建发布项

2、选择其他发布项中的通用HTTP发布接口

3、输入接收数据的HTTP地址发布密码,选择发布多版本数据时的处理方式

4、选择发布数据的哪些字段

5、可以设置内容预处理/SEO。统一修改数据后发布

步骤四 手动或自动发布数据

点此查看详细教程