diff --git a/src/talkcrawler/Article.java b/src/talkcrawler/Article.java index 252c9ef..14b2302 100644 --- a/src/talkcrawler/Article.java +++ b/src/talkcrawler/Article.java @@ -2,10 +2,7 @@ import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.PrintStream; import java.net.HttpURLConnection; import java.net.URL; import java.text.ParseException; @@ -20,7 +17,7 @@ import javax.json.JsonArrayBuilder; import javax.json.JsonObject; import javax.json.JsonObjectBuilder; -import tool.json.JsonTool; +import tool.http.Post; public class Article { String url; @@ -39,7 +36,7 @@ try { Article ins = new Article(MonthlyIndex.MONTHLY_INDEX, "2019-January", "010424"); ins.load(); - Article.post(Article.toJsonArray(ins.toJsonObject())); + Post.post(Article.toJsonArray(ins.toJsonObject())); } catch (Exception e) { e.printStackTrace(); @@ -59,61 +56,6 @@ this.id = id; this.url = String.format("%s/%s/%s.html", path, dir, id); } - - public static void post(JsonArray array) { - String jsonText = array.toString(); - HttpURLConnection con = null; - try { - URL url = new URL("http://172.17.0.1:8983/solr/talkja/update/json?commit=true"); - con = (HttpURLConnection) url.openConnection(); - con.setConnectTimeout(60000); - con.setReadTimeout(60000); - con.addRequestProperty("Content-Type", "application/json; charset=UTF-8"); - con.setRequestMethod("POST"); - con.setDoOutput(true); - con.setDoInput(true); - con.connect(); - try (OutputStream outputStream = con.getOutputStream()) { - try (PrintStream ps = new PrintStream(outputStream)) { - ps.print(jsonText); - } - } - - // recv response - int statusCode = con.getResponseCode(); - String responseData = ""; - StringBuilder sb = new StringBuilder(); - try (InputStream stream = con.getInputStream()) { - String line = ""; - BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8")); - while ((line = br.readLine()) != null) { - sb.append(line); - } - } - responseData = sb.toString(); - JsonObject res = JsonTool.parse(responseData); - if (res != null) { - JsonObject header = res.getJsonObject("responseHeader"); - if (header != null) { - int status = header.getInt("status"); - if (status == 0) { - System.out.println(" +++++ "+ status); - } - else { - System.out.println(" xxx "+ status); - } - } - } - } - catch (Exception ex) { - Logger.getLogger(Article.class.getName()).log(Level.SEVERE, null, ex); - } - finally { - if (con != null) { - con.disconnect(); - } - } - } JsonObject toJsonObject() { JsonObjectBuilder json = Json.createObjectBuilder(); @@ -230,7 +172,6 @@ e.printStackTrace(); } } - } if (str.startsWith("") && str.endsWith("")) { name = str.substring(3, str.length() - 4); diff --git a/src/talkcrawler/DailyIndex.java b/src/talkcrawler/DailyIndex.java index 93a50a5..5bc0a56 100644 --- a/src/talkcrawler/DailyIndex.java +++ b/src/talkcrawler/DailyIndex.java @@ -8,6 +8,7 @@ import java.util.StringTokenizer; import java.util.logging.Level; import java.util.logging.Logger; +import tool.http.Post; public class DailyIndex { String path; @@ -101,7 +102,7 @@ System.out.println("-----"); Article article = new Article(MonthlyIndex.MONTHLY_INDEX, dir, id); article.load(); - Article.post(Article.toJsonArray(article.toJsonObject())); + Post.post(Article.toJsonArray(article.toJsonObject())); } } } diff --git a/src/talkcrawler/MonthlyIndex.java b/src/talkcrawler/MonthlyIndex.java index c7b5b5a..c7cdfbd 100644 --- a/src/talkcrawler/MonthlyIndex.java +++ b/src/talkcrawler/MonthlyIndex.java @@ -9,8 +9,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.json.Json; -import javax.json.JsonArray; import javax.json.JsonArrayBuilder; +import tool.http.Post; public class MonthlyIndex { final static String MONTHLY_INDEX = "https://lists.openstreetmap.org/pipermail/talk-ja"; @@ -130,6 +130,6 @@ daily.load(); } } - Article.post(arryBuild.build()); + Post.post(arryBuild.build()); } } diff --git a/src/tool/http/Post.java b/src/tool/http/Post.java index 78855ea..c16b729 100644 --- a/src/tool/http/Post.java +++ b/src/tool/http/Post.java @@ -1,9 +1,77 @@ package tool.http; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.PrintStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.json.JsonArray; +import javax.json.JsonObject; +import talkcrawler.Article; +import tool.json.JsonTool; + /** * * @author yuu */ public class Post { + public static void post(JsonArray array) { + String jsonText = array.toString(); + HttpURLConnection con = null; + try { + URL url = new URL("http://172.17.0.1:8983/solr/talkja/update/json?commit=true"); + con = (HttpURLConnection) url.openConnection(); + con.setConnectTimeout(60000); + con.setReadTimeout(60000); + con.addRequestProperty("Content-Type", "application/json; charset=UTF-8"); + con.setRequestMethod("POST"); + con.setDoOutput(true); + con.setDoInput(true); + con.connect(); + try (OutputStream outputStream = con.getOutputStream()) { + try (PrintStream ps = new PrintStream(outputStream)) { + ps.print(jsonText); + } + } + + // recv response + int statusCode = con.getResponseCode(); + String responseData = ""; + StringBuilder sb = new StringBuilder(); + try (InputStream stream = con.getInputStream()) { + String line = ""; + BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8")); + while ((line = br.readLine()) != null) { + sb.append(line); + } + } + responseData = sb.toString(); + JsonObject res = JsonTool.parse(responseData); + if (res != null) { + JsonObject header = res.getJsonObject("responseHeader"); + if (header != null) { + int status = header.getInt("status"); + if (status == 0) { + System.out.println(" +++++ "+ status); + } + else { + System.out.println(" xxx "+ status); + } + } + } + } + catch (Exception ex) { + Logger.getLogger(Article.class.getName()).log(Level.SEVERE, null, ex); + } + finally { + if (con != null) { + con.disconnect(); + } + } + } }