import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HttpExtractor {
public static void main(String[] args) {
String filePath = "request_logs.txt"; // Replace with your log file path
extractHttpData(filePath);
}
public static void extractHttpData(String filePath) {
List<Map<String, String>> extractedData = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
// Basic parsing - adjust based on your log format
if (line.contains("GET") || line.contains("POST") || line.contains("PUT") || line.contains("DELETE")) {
Map<String, String> requestData = new HashMap<>();
// Extract URL
int startIndex = line.indexOf("HTTP/");
if (startIndex != -1) {
startIndex += 5; // Move past "HTTP/"
int endIndex = line.indexOf(" ", startIndex);
if (endIndex != -1) {
requestData.put("url", line.substring(startIndex, endIndex).trim());
} else {
requestData.put("url", line.substring(startIndex).trim());
}
} else {
requestData.put("url", "N/A");
}
// Extract Headers (example: Content-Type, User-Agent)
String headersPart = line.substring(line.indexOf("{") + 1, line.indexOf("}"));
if (!headersPart.isEmpty()) {
String[] headerLines = headersPart.split("\\s+");
for (String header : headerLines) {
if (header.contains(":")) {
String[] parts = header.split(":", 2);
if (parts.length == 2) {
String headerName = parts[0].trim();
String headerValue = parts[1].trim();
requestData.put(headerName, headerValue);
}
}
}
}
extractedData.add(requestData); // Add to the list
}
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
//Print the extracted data
for (Map<String, String> data : extractedData) {
System.out.println(data);
}
}
}
Add your comment