Changeset 31347 for other-projects/hathitrust
- Timestamp:
- 2017-01-24T13:40:12+13:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
other-projects/hathitrust/wcsa/vol-checker/src/org/hathitrust/extractedfeatures/VolumeCheck.java
r31341 r31347 4 4 import java.io.BufferedOutputStream; 5 5 import java.io.BufferedReader; 6 import java.io.DataOutputStream; 6 7 import java.io.FileInputStream; 7 8 import java.io.FileReader; … … 12 13 import java.io.PrintWriter; 13 14 import java.io.UnsupportedEncodingException; 15 import java.net.HttpURLConnection; 16 import java.net.URL; 17 import java.nio.charset.StandardCharsets; 14 18 import java.nio.file.Files; 15 19 import java.nio.file.Path; … … 25 29 import javax.servlet.http.HttpServletResponse; 26 30 31 27 32 /** 28 33 * Servlet implementation class VolumeCheck … … 36 41 37 42 protected static final String file_ext = ".json.bz2"; 38 43 protected static final String ht_col_url = "https://babel.hathitrust.org/cgi/mb"; 44 39 45 public VolumeCheck() 40 46 {} … … 178 184 179 185 } 186 187 protected void doCollectionToWorkset(HttpServletResponse response, String c, String a, String format) throws IOException 188 { 189 String post_url_params = "c="+c+"&a="+a+"&format="+format; 190 191 byte[] post_data = post_url_params.getBytes(StandardCharsets.UTF_8); 192 int post_data_len = post_data.length; 193 194 try { 195 196 URL post_url = new URL(ht_col_url); 197 HttpURLConnection conn = (HttpURLConnection) post_url.openConnection(); 198 conn.setDoOutput(true); 199 conn.setInstanceFollowRedirects(false); 200 conn.setRequestMethod("POST"); 201 conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 202 conn.setRequestProperty("charset", "utf-8"); 203 conn.setRequestProperty("Content-Length", Integer.toString(post_data_len)); 204 conn.setUseCaches(false); 205 206 try(DataOutputStream dos = new DataOutputStream(conn.getOutputStream())) { 207 dos.write(post_data); 208 } 209 // try-resource auto-closes stream 210 211 InputStream is = conn.getInputStream(); 212 InputStreamReader isr = new InputStreamReader(is); 213 BufferedReader reader = new BufferedReader(isr); 214 215 StringBuilder sb = new StringBuilder(); 216 String line = null; 217 while ((line = reader.readLine()) != null) 218 { 219 sb.append(line + "\n"); 220 } 221 222 response.setContentType("text/plain"); 223 PrintWriter pw = response.getWriter(); 224 pw.append(sb.toString()); 225 } 226 catch (Exception e) { 227 e.printStackTrace(); 228 response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Failed to convert HT collection to HTRC workset"); 229 } 230 231 } 180 232 /** 181 233 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 182 234 */ 183 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 235 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 236 { 184 237 185 238 … … 187 240 String cgi_id = request.getParameter("id"); 188 241 String cgi_download_id = request.getParameter("download-id"); 242 String cgi_convert_col = request.getParameter("convert-col"); 189 243 190 244 if (cgi_ids != null) { … … 259 313 } 260 314 } 315 else if (cgi_convert_col != null) { 316 // c=464226859&a=download&format=text 317 String cgi_c = request.getParameter("c"); 318 String cgi_a = request.getParameter("a"); 319 String cgi_format = request.getParameter("format"); 320 321 if ((cgi_c == null) || (cgi_a == null) || (cgi_format == null)) { 322 response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Malformed arguments. Need 'c', 'a', and 'format'"); 323 } 324 else { 325 doCollectionToWorkset(response,cgi_c,cgi_a,cgi_format); 326 } 327 328 } 261 329 else { 262 330 PrintWriter pw = response.getWriter();
Note:
See TracChangeset
for help on using the changeset viewer.