theme: vuepress
做网站自然是想要让百度收录的,而想要让百度收录就需要让百度知道你的网址,于是就有了百度推送,百度推送又有三类,分别是API提交、sitemap以及手动提交,今天就来说说如何使用API提交。
顾名思义,API提交就是通过百度的API进行URL提交,所以基本上就可以确定了,就是通过http请求把url发送给百度。了解完这件事情后,就开始分析然后写代码吧。
分析
打开站长平台,点击普通收录,在资源提交里面就有这三个提交方式,API提交是第一个,如下图所示:
可以看到这里有提供接口以及示例。
对我们而言,我们需要知道:
- 请求接口
- 请求方式
- 参数形式
通过上面的图片,我们可以得到请求地址:http://data.zz.baidu.com/urls?site=https://www.zngg.net&token= ,请求方式:POST,请求参数形式:text/plain
所以我们构建一个post请求,然后携带string字符串参数就可以了。
代码
由于url是一条一条的,所以我使用了ArrayList作为参数,并且使用RestTemplate进行请求,这里我简单封装一个方法:
public JSONObject PostText(String url, ArrayList params) {
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_PLAIN);
RestTemplate restTemplate = new RestTemplate();
String p = "";
for (Object param : params) {
p += param + "\n";
}
HttpEntity<String> strEntity = new HttpEntity(p, headers);
JSONObject body = restTemplate.postForObject(url, strEntity, JSONObject.class);
return body;
} catch (Exception e) {
return null;
}
}
这样就是实现了使用Java对百度推送请求的封装,当我们想要推送数据时,只需要创建一个字符串和一个ArrayList就可以了,demo:
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 11; i++) {
list.add("https://www.zngg.net/read/post/" + i);
}
JSONObject jsonObject = httpUtil.PostText("http://data.zz.baidu.com/urls?site=https://www.zngg.net&token=xxx", list);
这样,就可以推送11条url到百度去,当然,具体的情况还是要略微调整,不过上面封装的方法可以直接用。