優點是快
不需要頁面執行,,發布文章之后立即推送,所以,不管有沒有人訪問,都可以自動實時推送
嘗試了一下httpclient,沒找到相關資料,post方式無法塞url進去
最后改為
import java.net.URL; import java.net.URLConnection;
文章發布后,調用saveOrUpdate方法,入庫之后調用推送
private void activelyPush(Session session, ArticleModel articleModel) throws IOException { ActivelyPushDao apd = new ActivelyPushDao(); List<ActivelyPush> activelyPushs = apd.getAll(session);//獲取所有要推送的搜索引擎 String[] Parameters = { "你的網站/" + articleModel.getAuthor_column_py() + "/" + articleModel.getId() + ".html" }; for (ActivelyPush ap : activelyPushs) { String result = ""; PrintWriter out = null; BufferedReader in = null; try { //建立URL之間的連接 URL url = new URL(ap.getUrl()); URLConnection conn = url.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 : Parameters) { 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) { System.out.println("發送post請求出現異常!" + e); e.printStackTrace(); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } } }