Read HTTP Archives with Java.
<dependency>
<groupId>de.sstoehr</groupId>
<artifactId>har-reader</artifactId>
<version>2.5.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.
Writing HAR to File:
Har har = new Har();
HarWriter harWriter = new HarWriter();
harWriter.writeTo(new File("myhar.har"), har);
Writing HAR to OutputStream:
Har har = new Har();
HarWriter harWriter = new HarWriter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
harWriter.writeTo(baos, har);
Writing HAR to Writer:
Har har = new Har();
HarWriter harWriter = new HarWriter();
StringWriter sw = new StringWriter();
harWriter.writeTo(sw, har);
Writing HAR as bytes:
Har har = new Har();
HarWriter harWriter = new HarWriter();
byte[] harBytes = harWriter.writeAsBytes(har);
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!