Documentation ¶
Overview ¶
Package parser parses SAZ files (Fiddler logs) to an array of sessions, which contain all about network connections, requests and responses.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Flag ¶ added in v0.0.2
type Flag struct { XMLName xml.Name `xml:"SessionFlag"` Name string `xml:"N,attr"` Value string `xml:"V,attr"` }
Flag contains a property of a deserialized network session, which are not included in request or response headers. Originated at https://docs.telerik.com/fiddlercore/api/fiddler.session.
type Flags ¶ added in v0.0.2
Flags contain properties of a deserialized network session, which are not included in request or response headers. Originated at https://docs.telerik.com/fiddlercore/api/fiddler.session.
type Session ¶
type Session struct { XMLName xml.Name `xml:"Session"` Number int Timers Timers `xml:"SessionTimers"` Flags Flags `xml:"SessionFlags"` Request *http.Request Response *http.Response RequestBody []byte ResponseBody []byte }
Session represents a deserialized network session. Originated at https://docs.telerik.com/fiddlercore/api/fiddler.session.
func ParseFile ¶
ParseFile prses a file to an array of network sessions.
Example ¶
Parse the content of `foo.saz` and print the count of network sessions.
package main import ( "fmt" "github.com/prantlf/saz-tools/pkg/parser" ) func main() { sessions, err := parser.ParseFile("foo.saz") if err != nil { panic(err) } fmt.Printf("%d network sessions found.", len(sessions)) }
Output: 42 network sessions found.
func ParseReader ¶
ParseReader parses a file content passed by a reader to an array of network sessions.
Example ¶
Parse the content of `foo.saz` and print the total size of all responses.
package main import ( "fmt" "io" "github.com/prantlf/saz-tools/pkg/parser" ) func main() { var reader io.ReaderAt var size int64 sessions, err := parser.ParseReader(reader, size) if err != nil { panic(err) } var total int64 for index := range sessions { total += sessions[index].Response.ContentLength } fmt.Printf("The total downloaded size was %d bytes.", total) }
Output: The total downloaded size was 44040192 bytes.
type Timers ¶ added in v0.0.2
type Timers struct { XMLName xml.Name `xml:"SessionTimers"` ClientConnected string `xml:"ClientConnected,attr"` ClientBeginRequest string `xml:"ClientBeginRequest,attr"` GotRequestHeaders string `xml:"GotRequestHeaders,attr"` ClientDoneRequest string `xml:"ClientDoneRequest,attr"` GatewayTime string `xml:"GatewayTime,attr"` DNSTime string `xml:"DNSTime,attr"` TCPConnectTime string `xml:"TCPConnectTime,attr"` HTTPSHandshakeTime string `xml:"HTTPSHandshakeTime,attr"` ServerConnected string `xml:"ServerConnected,attr"` FiddlerBeginRequest string `xml:"FiddlerBeginRequest,attr"` ServerGotRequest string `xml:"ServerGotRequest,attr"` ServerBeginResponse string `xml:"ServerBeginResponse,attr"` GotResponseHeaders string `xml:"GotResponseHeaders,attr"` ServerDoneResponse string `xml:"ServerDoneResponse,attr"` ClientBeginResponse string `xml:"ClientBeginResponse,attr"` ClientDoneResponse string `xml:"ClientDoneResponse,attr"` }
Timers contain begin and end times of phases of a deserialized network session. Originated at https://docs.telerik.com/fiddlercore/api/fiddler.sessiontimers.