Click or drag to resize
Session Class
The Session object manages the complete HTTP session including the UI listitem, the ServerChatter, and the ClientChatter.
Inheritance Hierarchy
SystemObject
  FiddlerSession

Namespace: Fiddler
Assembly: FiddlerCore4 (in FiddlerCore4.dll) Version: 4.6.2.0
Syntax
public class Session

The Session type exposes the following members.

Constructors
Methods
  NameDescription
Public methodAbort
Closes both client and server pipes and moves state to Aborted; unpauses thread if paused.
Public methodStatic memberBuildFromData
Factory constructor
Public methodCOMETPeek
Call this function while in the "reading response" state to update the responseBodyBytes array with the partially read response.
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetRedirectTargetURL
Returns the fully-qualified URL to which this Session's response points, or null. This method is needed because many servers (illegally) return a relative url in HTTP/3xx Location response headers.
Public methodStatic memberGetRedirectTargetURL(String, String)
Gets a redirect-target from a base URI and a Location header
Public methodGetRequestBodyAsString
Return a string generated from the request body, decoding it and converting from a codepage if needed. Throws on errors.
Public methodGetRequestBodyEncoding
Find the text encoding of the request WARNING: Will not decompress body to scan for indications of the character set
Public methodGetResponseBodyAsString
Return a string generated from the response body, decoding it and converting from a codepage if needed. Throws on errors.
Public methodGetResponseBodyEncoding
Find the text encoding of the response WARNING: Will not decompress body to scan for indications of the character set
Public methodGetResponseBodyHash
Public methodGetResponseBodyHashAsBase64
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodHostnameIs
Returns TRUE if the Session's target hostname (no port) matches sTestHost (case-insensitively).
Public methodHTTPMethodIs
Returns TRUE if the Session's HTTP Method is available and matches the target method.
Public methodIgnore
Set the SessionFlags.Ignore bit for this Session, also configuring it to stream, drop read data, and bypass event handlers. For a CONNECT Tunnel, traffic will be blindly shuffled back and forth. Session will be hidden.
Public methodisAnyFlagSet
Test the session's BitFlags
Public methodisFlagSet
Test the session's BitFlags
Public methodLoadMetadata
Read metadata about this session from a stream. NB: Closes the Stream when done.
Public methodLoadRequestBodyFromFile
Replace HTTP request body using the specified file.
Public methodLoadResponseFromFile
Replace HTTP response headers and body using the specified file.
Public methodLoadResponseFromStream
Replace HTTP response headers and body using the specified stream.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPoisonClientPipe
Ensures that, after the response is complete, the client socket is closed and not reused. Does NOT (and must not) close the pipe.
Public methodPoisonServerPipe
Prevents the server pipe from this session from being pooled for reuse
Public methodSaveMetadata
Writes this session's metadata to a file.
Public methodSaveRequest(String, Boolean)
Save the request to a file. The headers' Request Line will not contain the scheme or host, which is probably not what you want.
Public methodSaveRequest(String, Boolean, Boolean)
Save the request to a file. Throws if file cannot be written.
Public methodSaveRequestBody
Save the request body to a file. You likely want to call utilDecodeRequest first.
Public methodSaveResponse
Saves the response (headers and body) to a file
Public methodSaveResponseBody
Save HTTP response body to Fiddler Captures folder. You likely want to call utilDecodeResponse first.
Public methodSaveResponseBody(String)
Save HTTP response body to specified location. You likely want to call utilDecodeResponse first.
Public methodSaveSession
Save the request and response to a single file.
Public methodThreadResume
This method resumes the Session's thread in response to "Continue" commands from the UI
Public methodToHTMLFragment
Returns HTML representing the Session. Call Utilities.StringToCF_HTML on the result of this function before placing it on the clipboard.
Public methodToString
Store this session's request and response to a string.
(Overrides ObjectToString.)
Public methodToString(Boolean)
Store this session's request and response to a string.
Public methodUNSTABLE_SetBitFlag
DO NOT USE. TEMPORARY WHILE REFACTORING VISIBILITY OF MEMBERS
Public methoduriContains
Returns true if the absolute request URI contains the specified string. Case-insensitive.
Public methodutilAssignResponse(Session)
Public methodutilAssignResponse(HTTPResponseHeaders, Byte)
Public methodutilBZIP2Response
Use BZIP2 to compress the response body. Throws exceptions to caller.
Public methodutilChunkResponse
Introduces HTTP Chunked encoding on the response body
Public methodutilCreateResponseAndBypassServer
Call inside OnBeforeRequest to create a response object and bypass the server.
Public methodutilDecodeRequest
Removes chunking and HTTP Compression from the Request. Adds or updates Content-Length header.
Public methodutilDecodeRequest(Boolean)
Public methodutilDecodeResponse
Removes chunking and HTTP Compression from the Response. Adds or updates Content-Length header.
Public methodutilDecodeResponse(Boolean)
Removes chunking and HTTP Compression from the Response. Adds or updates Content-Length header.
Public methodutilDeflateResponse
Use DEFLATE to compress the response body. Throws exceptions to caller.
Public methodutilFindInRequest
Find a string in the request body. Return its index, or -1.
Public methodutilFindInResponse
Find a string in the response body. Return its index, or -1.
Public methodutilGZIPRequest
Use GZIP to compress the request body. Throws exceptions to caller.
Public methodutilGZIPResponse
Use GZIP to compress the response body. Throws exceptions to caller.
Public methodutilPrependToResponseBody
Add a string to the top of the response body, updating Content-Length. (Call utilDecodeResponse first!)
Public methodutilReplaceInRequest
Perform a string replacement on the request body. Adjusts the Content-Length header if needed.
Public methodutilReplaceInResponse
Perform a string replacement on the response body (potentially multiple times). Adjust the Content-Length header if needed.
Public methodutilReplaceOnceInResponse
Perform a one-time string replacement on the response body. Adjust the Content-Length header if needed.
Public methodutilReplaceRegexInResponse
Perform a regex-based string replacement on the response body. Adjusts the Content-Length header if needed.
Public methodutilSetRequestBody
Replaces the request body with sString. Sets Content-Length header and removes Transfer-Encoding/Content-Encoding.
Public methodutilSetResponseBody
Replaces the response body with sString. Sets Content-Length header and removes Transfer-Encoding/Content-Encoding
Public methodWriteMetadataToStream
Write the metadata about this Session to a stream. The Stream is left open!
Public methodWriteRequestToStream(Boolean, Boolean, Stream)
Write the session's Request to the specified stream
Public methodWriteRequestToStream(Boolean, Boolean, Boolean, Stream)
Write the session's Request to the specified stream
Public methodWriteResponseToStream
Write the session's Response to the specified stream
Public methodWriteToStream
Write the session to the specified stream
Top
Fields
  NameDescription
Public field__oTunnel
Used if the Session is bound to a WebSocket or CONNECTTunnel
Public fieldbBufferResponse
Should response be buffered for tampering.
Public fieldm_clientIP
IP Address of the client for this session.
Public fieldm_clientPort
Client port attached to Fiddler.
Public fieldm_hostIP
IP Address of the server for this session.
Public fieldoFlags
Fiddler-internal flags set on the Session.
Public fieldoRequest
Object representing the HTTP Request.
Public fieldoResponse
Object representing the HTTP Response.
Public fieldrequestBodyBytes
Contains the bytes of the request body.
Public fieldresponseBodyBytes
Contains the bytes of the response body.
Public fieldTimers
Timers stored as this Session progresses
Public fieldViewItem
Top
Properties
  NameDescription
Public propertybHasResponse
Returns TRUE if this session's State > ReadingResponse, and oResponse, oResponse.headers, and responseBodyBytes are all non-null. Note that bHasResponse returns FALSE if the session is currently reading, even if a body was copied using the COMETPeek feature
Public propertybHasWebSocketMessages
Checks whether this is a WebSocket, and if so, whether it has logged any parsed messages.
Public propertyBitFlags
Bitflags of commonly-queried session attributes
Public propertybypassGateway
Set to true in OnBeforeRequest if this request should bypass the gateway
Public propertyclientIP
Returns the Address used by the client to communicate to Fiddler.
Public propertyclientPort
Returns the port used by the client to communicate to Fiddler.
Public propertyfullUrl
Retrieves the complete URI, including protocol/scheme, in the form http://www.host.com/filepath?query. Or sets the complete URI, adjusting the UriScheme and/or Host.
Public propertyhost
DNS Name of the host server targeted by this request. May include IPv6 literal brackets. NB: a port# may be included.
Public propertyhostname
DNS Name of the host server (no port) targeted by this request. Will include IPv6-literal brackets for IPv6-literal addresses
Public propertyid
Returns the sequential number of this session. Note, by default numbering is restarted at zero when the session list is cleared.
Public propertyisFTP
When true, this session was conducted using the FTP protocol.
Public propertyisHTTPS
When true, this session was conducted using the HTTPS protocol.
Public propertyisTunnel
Returns True if this is a HTTP CONNECT tunnel.
Public propertyItemString
Simple indexer into the Session's oFlags object; returns null if flag is not present.
Public propertyItemString, String
Indexer property into SESSION flags, REQUEST headers, and RESPONSE headers. e.g. oSession["Request", "Host"] returns string value for the Request host header. If null, returns String.Empty
Public propertyLocalProcess
Get the Process Info of the application which made this request, or String.Empty if it is not known
Public propertyLocalProcessID
Get the process ID of the application which made this request, or 0 if it cannot be determined.
Public propertyPathAndQuery
Returns the path and query part of the URL. (For a CONNECT request, returns the host:port to be connected.)
Public propertyport
Returns the server port to which this request is targeted.
Public propertyRequestBody
Gets or Sets the HTTP Request body bytes. Setter adjusts Content-Length header, and removes Transfer-Encoding and Content-Encoding headers. Setter DOES NOT CLONE the passed array. Setter will throw if the Request object does not exist for some reason. Use utilSetRequestBody(sStr) to ensure proper character encoding if you need to use a string.
Public propertyRequestHeaders
Public propertyRequestMethod
Public propertyResponseBody
Gets or Sets the HTTP Response body bytes. Setter adjusts Content-Length header, and removes Transfer-Encoding and Content-Encoding headers. Setter DOES NOT CLONE the passed array. Setter will throw if the Response object has not yet been created. (See utilCreateResponseAndBypassServer) Use utilSetResponseBody(sStr) to ensure proper character encoding if you need to use a string.
Public propertyresponseCode
Gets or Sets the HTTP Status code of the server's response
Public propertyResponseHeaders
Public propertystate
State of session. Note Side-Effects: If setting to .Aborted, calls FinishUISession. If setting to/from a Tamper state, calls RefreshMyInspectors
Public propertySuggestedFilename
Gets a path-less filename suitable for saving the Response entity. Uses Content-Disposition if available.
Public propertyTag
A common use for the Tag property is to store data that is closely associated with the Session. It is NOT marshalled during drag/drop and is NOT serialized to a SAZ file.
Public propertyTunnelEgressByteCount
If this session is a Tunnel, returns number of bytes sent from the Client to the Server
Public propertyTunnelIngressByteCount
If this session is a Tunnel, returns number of bytes sent from the Server to the Client
Public propertyTunnelIsOpen
If this session is a Tunnel, and the tunnel's IsOpen property is TRUE, returns TRUE. Otherwise returns FALSE.
Public propertyurl
Gets or sets the URL (without protocol) being requested from the server, in the form www.host.com/filepath?query.
Top
Events
  NameDescription
Public eventOnCompleteTransaction
Public eventOnContinueTransaction
This event fires if this Session automatically yields a new one, for instance, if Fiddler is configured to automatically follow redirects or perform multi-leg authentication (X-AutoAuth).
Public eventOnStateChanged
This event fires at any time the session's State changes. Use with caution due to the potential for performance impact.
Top
See Also