【问题标题】:Get Response data using HarLib in Java在 Java 中使用 HarLib 获取响应数据
【发布时间】:2023-03-29 07:38:01
【问题描述】:

有人熟悉在 Java 中使用 HarLib 吗?我正在尝试从 .HAR 文件中获取“响应”数据并将其输出到屏幕。

HarEntry 类中有一个getResponse() 方法,但是我不知道如何根据主页上的示例来实现它:

来自网站的示例:

import edu.umass.cs.benchlab.har.*;

File f = new File(fileName);
HarFileReader r = new HarFileReader();
HarFileWriter w = new HarFileWriter();
try
{
  System.out.println("Reading " + fileName);
  HarLog log = r.readHarFile(f);

  // Access all elements as objects
  HarBrowser browser = log.getBrowser();
  HarEntries entries = log.getEntries();
  List<HarPage> pages = log.getPages().getPages();
  for (HarPage page : pages)
  {
    System.out.println("page start time: "
        + ISO8601DateFormatter.format(page.getStartedDateTime()));
    System.out.println("page id: " + page.getId());
    System.out.println("page title: "+page.getTitle());
  }

           // Once you are done manipulating the objects, write back to a file
  System.out.println("Writing " + fileName + ".test");
  File f2 = new File(fileName + ".test");
  w.writeHarFile(log, f2);
}
catch (JsonParseException e)
{
  e.printStackTrace();
  fail("Parsing error during test");
}
catch (IOException e)
{
  e.printStackTrace();
  fail("IO exception during test");
}

【问题讨论】:

  • 我找到了答案。我在示例中添加了一些行: List hentry = entries.getEntries(); // 用于循环 //输出条目的“响应”代码。 for (HarEntry entry : hentry) { System.out.println("响应码:" + entry.getResponse().getStatus());计时器到期后,我将发布完整代码。

标签: java json getresponse har


【解决方案1】:

我想我想通了,虽然我不知道这段代码有多“干净”。我修改了示例代码并注释掉了写入文件部分:

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.codehaus.jackson.JsonParseException;

import edu.umass.cs.benchlab.har.*;
import edu.umass.cs.benchlab.har.tools.*;


public class readinghars {


public static void main(String[] args) {
    String filename = new String("filename.har");
    File f = new File(filename);
    HarFileReader r = new HarFileReader();
    HarFileWriter w = new HarFileWriter();

    try
    {
      System.out.println("Reading " + filename);
      HarLog log = r.readHarFile(f);

      // Access all elements as objects
      HarBrowser browser = log.getBrowser();
      HarEntries entries = log.getEntries();

   // Used for loops
      List<HarPage> pages = log.getPages().getPages();
      List<HarEntry> hentry = entries.getEntries(); 

      for (HarPage page : pages)
      {
        System.out.println("page start time: "
            + ISO8601DateFormatter.format(page.getStartedDateTime()));
        System.out.println("page id: " + page.getId());
        System.out.println("page title: " + page.getTitle());
        }

      //Output "response" code of entries.
      for (HarEntry entry : hentry)
      {
          System.out.println("request code: " + entry.getRequest().getMethod()); //Output request type
          System.out.println("    response code: " + entry.getRequest().getUrl()); //Output url of request
          System.out.println("    response code: " + entry.getResponse().getStatus()); // Output the 
      }

      /*
      // Once you are done manipulating the objects, write back to a file
      System.out.println("Writing " + "fileName" + ".test");
      File f2 = new File("fileName" + ".test");
      w.writeHarFile(log, f2);
      */
    }
    catch (JsonParseException e)
    {
      e.printStackTrace();
      //fail("Parsing error during test");
    }
    catch (IOException e)
    {
      e.printStackTrace();
      //fail("IO exception during test");
    }

}

}

【讨论】:

    猜你喜欢
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    相关资源
    最近更新 更多