这段时间优化了下短链站,使其的短链跳转变得更快了
实测本地无缓存浏览器直接进去短链比如ka.ci/cat可以做到1秒钟左右跳转成功~
可是呢发现这个获取流程还是太复杂,于是想着写一套自动化程序来完成短链的申请审核以及校验发放
这是之前的获取流程,十分的繁琐(估计就是太长不看那种
于是经过一番思考,突然想到AFD提供了官方接口,那我们是不是可以试着去使用这个接口来完成校验呢?
说干就干,于是寻找了AFD的官方接口文档,发现AFD提供了两种形式:
爱发电提供了webhook和api两种方式为开发者提供便利。 webhook功能需要配置好url,每当有订单时,会请求配置的url;API功能需要开发者通过token生成sign签名,主动请求接口查询历史订单
我这里是使用了API主动调用的,当然如果你更喜欢webhook被动接收也是可以的
通过查询,我们可以很容易了解到如何进行API的调用——发送JSON请求
使用此函数便可以进行JSON请求以及接收返回值:
function http_post_json($url, $jsonStr){
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($jsonStr)
)
);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$ans = ((array($httpCode, $response))[1]);
return json_decode($ans,true);//我将其转化为数组了,因为个人更喜欢数组一些(x
}
当然在调用中还遇到了一些小问题,在这里只说一个大家也比较摸不着头脑的:
如果是json形式请求,官方给出的格式如下:
如果以 json 形式请求
'content-type: application/json'
{"user_id":"abc", "params": "{"a":333}", "ts": 1624339905, "sign":"59ada6ce4f74c4d3a97d788a73f6355d"}
实际上在我们测试的时候很容易发现这个json格式是有误的,经过十万次尝试终于试出了解法:
多执行一句$params = json_encode('{"page":1}');就可以了(也可能是我太傻了x)
于是,我们便可以结合这些,慢慢写一个自动提交,校验,发放短链的系统了:
具体代码没什么太大技术含量就不放在这里了,大家有兴趣可以自己研究研究~
另外对可能不知道KA.CI短链站的小伙伴说一句:在这里!ka.ci
叨叨几句... 1 条评论
123123 博主
「 该评论为私密评论 」