/har-reader

Library for accessing HTTP Archives (HAR) with Java

Primary LanguageJavaMIT LicenseMIT

HAR reader

Read HTTP Archives with Java.

<dependency>
  <groupId>de.sstoehr</groupId>
  <artifactId>har-reader</artifactId>
  <version>2.1.9</version>
</dependency>

Build Status codecov Maven Central

Usage

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.

Customizing HAR reader

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());

Latest Releases

2.1.9 - 2020-06-30

  • Updated dependencies

This is the first release, which is provided both on GitHub and Maven Central repository.

Details

2.1.8 - 2020-05-24

  • Updated dependencies

Details

2.1.7 - 2019-11-05

  • Updated dependencies

Details

2.1.6 - 2019-10-04

  • Updated dependencies

Details

2.1.5 - 2019-09-06

  • Updated dependencies

Details

2.1.4 - 2019-05-24

  • Updated dependencies

Details

2.1.3 - 2018-10-18

Details

2.1.2 - 2018-08-02

  • Added support for several HTTP status codes, e.g. (308, 422 - 451, 505 - 511)

Details

2.1.1 - 2018-07-26

  • Added support for HTTP method: PATCH

Details

2.1.0 - 2018-03-11

  • You can now access additional fields, which are not part of the HAR spec:
response.getAdditional().get("_transferSize");

Details

2.0.3 - 2017-04-14

  • Added equals and hashCode methods

2.0.2 - 2016-11-21

  • Added CCM_POST HttpMethod to enum

2.0.1 - 2016-04-16

  • Ignore invalid integers in lax mode

Details

2.0.0 - 2015-08-30

  • HAR reader is now easier customizable. Use your own MapperFactory to adjust HAR reader for your project!
  • HAR reader threw exceptions, when required fields were empty. This behaviour was changed, so that you can now read non-standard-compliant HAR files

Details