Read HTTP Archives with Java.
<dependency>
<groupId>de.sstoehr</groupId>
<artifactId>har-reader</artifactId>
<version>2.3.0</version>
</dependency>
Reading HAR from File:
HarReader harReader = new HarReader();
Har har = harReader.readFromFile(new File("myhar.har"));
System.out.println(har.getLog().getCreator().getName());
Reading HAR from String:
HarReader harReader = new HarReader();
Har har = harReader.readFromString("{ ... HAR-JSON-Data ... }");
Some HAR generators use date formats, which are not according to the specification. You can tell HAR reader to ignore those fields instead of throwing an exception:
HarReader harReader = new HarReader();
Har har = harReader.readFromFile(new File("myhar.har"), HarReaderMode.LAX);
Har har = harReader.readFromString("{ ... HAR-JSON-Data ... }", HarReaderMode.LAX);
You can also follow the next section and configure your own mapping configuration to deal with these fields.
As of version 2.0.0 you can create your own MapperFactory
(DefaultMapperFactory)
public class MyMapperFactory implements MapperFactory {
public ObjectMapper instance(HarReaderMode mode) {
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
// configure Jackson object mapper as needed
mapper.registerModule(module);
return mapper;
}
}
You can now use your configuration by instantiating the HarReader
with your MapperFactory
:
HarReader harReader = new HarReader(new MyMapperFactory());
Map<String, Object> getAdditional()
This is the first release, which is provided both on GitHub and Maven Central repository.
PATCH
response.getAdditional().get("_transferSize");
MapperFactory
to adjust HAR reader for your project!