建立请求类:
@Data public class LinkPushToBDReq { @NotNull @ApiModelProperty("推送地址") private List<String> urls; @NotNull @ApiModelProperty("密钥") private String baiduToken; @NotNull @ApiModelProperty("站点") private String site; }
建立controller类使用post接口进行推送:
@ApiOperation("百度推送") @PostMapping("/linkPushToBD") public Response<?> linkPush(@Validated @RequestBody Request<LinkPushToBDReq> request) { LinkPushToBDReq data = request.getData(); List<String> urls = data.getUrls(); String site = data.getSite(); String PostUrl = "http://data.zz.baidu.com/urls?site=" + site + "&token=" + data.getBaiduToken(); if (null == urls || urls.isEmpty()) { return null; } String result = ""; PrintWriter out = null; BufferedReader in = null; try { //建立URL之间的连接 URLConnection conn = new URL(PostUrl).openConnection(); //设置通用的请求属性 conn.setRequestProperty("Host", "data.zz.baidu.com"); conn.setRequestProperty("User-Agent", "curl/7.12.1"); conn.setRequestProperty("Content-Length", "83"); conn.setRequestProperty("Content-Type", "text/plain"); //发送POST请求必须设置如下两行 conn.setDoInput(true); conn.setDoOutput(true); //获取conn对应的输出流 out = new PrintWriter(conn.getOutputStream()); //发送请求参数 String param = ""; for (String s : urls) { param += s + "\n"; } out.print(param.trim()); //进行输出流的缓冲 out.flush(); //通过BufferedReader输入流来读取Url的响应 in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { log.error("发送post请求出现异常", e); return Response.Failure("发送post请求出现异常"); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return Response.Success(result); }
注意(Response,Request为自定义包装类,根据所需进行修改)