1. import java.io.BufferedReader;
  2. import java.io.FileReader;
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. public class HttpExtractor {
  9. public static void main(String[] args) {
  10. String filePath = "request_logs.txt"; // Replace with your log file path
  11. extractHttpData(filePath);
  12. }
  13. public static void extractHttpData(String filePath) {
  14. List<Map<String, String>> extractedData = new ArrayList<>();
  15. try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
  16. String line;
  17. while ((line = reader.readLine()) != null) {
  18. // Basic parsing - adjust based on your log format
  19. if (line.contains("GET") || line.contains("POST") || line.contains("PUT") || line.contains("DELETE")) {
  20. Map<String, String> requestData = new HashMap<>();
  21. // Extract URL
  22. int startIndex = line.indexOf("HTTP/");
  23. if (startIndex != -1) {
  24. startIndex += 5; // Move past "HTTP/"
  25. int endIndex = line.indexOf(" ", startIndex);
  26. if (endIndex != -1) {
  27. requestData.put("url", line.substring(startIndex, endIndex).trim());
  28. } else {
  29. requestData.put("url", line.substring(startIndex).trim());
  30. }
  31. } else {
  32. requestData.put("url", "N/A");
  33. }
  34. // Extract Headers (example: Content-Type, User-Agent)
  35. String headersPart = line.substring(line.indexOf("{") + 1, line.indexOf("}"));
  36. if (!headersPart.isEmpty()) {
  37. String[] headerLines = headersPart.split("\\s+");
  38. for (String header : headerLines) {
  39. if (header.contains(":")) {
  40. String[] parts = header.split(":", 2);
  41. if (parts.length == 2) {
  42. String headerName = parts[0].trim();
  43. String headerValue = parts[1].trim();
  44. requestData.put(headerName, headerValue);
  45. }
  46. }
  47. }
  48. }
  49. extractedData.add(requestData); // Add to the list
  50. }
  51. }
  52. } catch (IOException e) {
  53. System.err.println("Error reading file: " + e.getMessage());
  54. }
  55. //Print the extracted data
  56. for (Map<String, String> data : extractedData) {
  57. System.out.println(data);
  58. }
  59. }
  60. }

Add your comment