| Utilities Class |
Namespace: Fiddler
The Utilities type exposes the following members.
| Name | Description | |
|---|---|---|
| areOriginsEquivalent |
Returns TRUE if two ORIGIN (scheme+host+port) values are functionally equivalent.
| |
| BrotliExpand | ||
| ByteArrayToHexView(Byte, Int32) |
Pretty-print a Hex view of a byte array. Slow.
| |
| ByteArrayToHexView(Byte, Int32, Int32) |
Pretty-print a Hex view of a byte array. Slow.
| |
| ByteArrayToHexView(Byte, Int32, Int32, Boolean) |
Pretty-print a Hex view of a byte array. Slow.
| |
| ByteArrayToHexView(Byte, Int32, Int32, Int32, Boolean) | ||
| ByteArrayToString |
Print an byte array to a hex string.
Slow.
| |
| bzip2Compress |
Compress a byte[] using the bzip2 algorithm
| |
| bzip2Expand(Byte) |
Decompress an array compressed using bzip2
| |
| bzip2Expand(Byte, Boolean) |
Decompress an array compressed using bzip2
| |
| CollapsePath |
Convert a full path into one that uses environment variables
| |
| CompactPath |
Shrinks a path string to fit within a certain number of characters, replacing segments with ellipses if needed.
| |
| CompareVersions |
Typically, a version number is displayed as "major number.minor number.build number.private part number".
| |
| ContentTypeForFilename |
Return the content type of a target file, or application/octet-stream if unknown.
| |
| CopyToClipboard(String) |
Copy a string to the clipboard, notifying the user of any exceptions
| |
| CopyToClipboard(DataObject) |
Copy an object to the clipboard, notifying the user of any exceptions
| |
| CrackHostAndPort |
This function cracks the Hostname/Port combo, removing IPV6 brackets if needed
| |
| DeflaterCompress |
Compress a byte array using RFC1951 DEFLATE
| |
| DeflaterExpand(Byte) |
Decompress a byte array that was compressed using RFC1951 DEFLATE
| |
| DeflaterExpand(Byte, Boolean) | ||
| DeflaterExpandInternal |
UnDeflate function which shows no UI and will throw on error
| |
| doChunk |
Takes a byte array and applies HTTP Chunked Transfer Encoding to it
| |
| doUnchunk |
Removes HTTP chunked encoding from the data in writeData and returns the resulting array.
| |
| Dupe |
Duplicate a byte array, replacing null with byte[0].
Doing this instead of .Clone() because it better handles nulls and it may be faster.
| |
| EllipsizeIfNeeded |
Ensures that the target string is iMaxLength or fewer characters, appending ... if truncation occurred
| |
| EnsureInRangeT |
Ensures a value is within a specified range.
| |
| EnsureOverwritable |
Ensure that the target path exists and if a file exists there, it is not readonly or hidden.
WARNING: Can throw if target "Filename" calls for a parent directoryname that is already used as a filename by a non-directory.
E.g. EnsureOverwriteable(C:\io.sys\filename.txt); would throw.
| |
| EnsurePathIsAbsolute |
Ensure that a given path is absolute, if not, applying the root path.
WARNING: This function only works as well as Path.IsPathRooted, which returns "True" for things like "/NoDriveSpecified/fuzzle.txt"
A better approach would be to look at the internal Path.IsRelative method
| |
| EnsureUniqueFilename |
Ensure that the target file does not yet exist. If it does, generates a new filename with an embedded identifier, e.g. out[1].txt instead.
Attempts to ensure filename is creatable; e.g. if a path component needs to be a directory but is a file already, injects [#] into that
path component.
| |
| EnsureValidAsPath |
Address the problem where the target "PATH" calls for a directoryname is already a filename
| |
| GetCommaTokenValue |
Returns the Value from a (case-insensitive) token in the header string. Correctly handles double-quoted strings.
Allows comma and semicolon as delimiter. Trailing whitespace may be present.
| |
| getEntityBodyEncoding |
WARNING: Potentially slow.
WARNING: Does not decode the HTTP Response body; if compressed, embedded META or _charset_ will not be checked
Gets (via Headers or Sniff) the provided body's text Encoding. If not found, returns CONFIG.oHeaderEncoding (usually UTF-8).
| |
| GetExecutableOutput |
Run an executable, wait for it to exit, and return its output as a string.
NOTE: Uses CreateProcess, so you cannot launch applications which require Elevation.
| |
| GetHashAsBase64 | ||
| GetMD5Hash |
Warning: This will throw if FIPS mode is enabled
| |
| GetRegistryBool |
Get a bool from the registry
| |
| GetRegistryFloat |
Returns an Float from the registry, or a default.
| |
| GetRegistryInt |
Returns an integer from the registry, or a default.
| |
| getResponseBodyEncoding |
Gets (via Headers or Sniff) the Response Text Encoding. Returns CONFIG.oHeaderEncoding (usually UTF-8) if unknown.
Perf: May be quite slow; cache the response
| |
| GetSHA1Hash | ||
| GetSHA256Hash | ||
| GetSHA384Hash | ||
| GetSHA512Hash | ||
| GetStringFromArrayRemovingBOM |
Gets a string from a byte-array, stripping a Byte Order Marker preamble if present.
| |
| GetTextEncoding |
WARNING: May throw.
Gets an encoding, with proper respect for "utf8" as an alias for "utf-8"; Microsoft products don't support
this prior to 2015-era, but it turns out to be common. We do have a linter elsewhere that reports a warning
if it sees the dashless form.
https://github.com/telerik/fiddler/issues/38
| |
| GetTickCount |
Get a TickCount (milliseconds since system start) as an unsigned 64bit value. On Vista+, uses the GetTickCount64 API that won't rollover,
but on XP, this unsigned wrapper moves the rollover point to 49 days of uptime.
| |
| GzipCompress |
GZIPs a byte-array
| |
| GzipExpand(Byte) |
Expands a GZIP-compressed byte array
| |
| GzipExpand(Byte, Boolean) | ||
| GzipExpandInternal |
GZIP-Expand function which shows no UI and will throw on error
| |
| HasMagicBytes(Byte, Byte) |
Determines whether the arrData array STARTS WITH with the supplied arrMagics bytes. Used for Content-Type sniffing.
| |
| HasMagicBytes(Byte, String) |
Determines whether the arrData array begins with the supplied sMagics ASCII text. Used for Content-Type sniffing.
| |
| HasMagicBytes(Byte, Int32, Byte) | ||
| HtmlEncode |
HtmlEncode a string.
In Fiddler itself, this is a simple wrapper for the System.Web.HtmlEncode function.
The .NET3.5/4.0 Client Profile doesn't include System.Web, so we must provide our
own implementation of HtmlEncode for FiddlerCore's use.
| |
| HTTPMethodAllowsBody |
Returns true if a request with the specified HTTP Method/Verb may contain a entity body
| |
| HTTPMethodIsIdempotent |
http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-26#section-4.2.2
| |
| HTTPMethodRequiresBody |
Determines true if a request with the specified HTTP Method/Verb MUST contain a entity body
| |
| HTTPStatusAllowsBody | ||
| IndexOfNth | ||
| IPEndPointFromHostPortString |
Given a string/list in the form HOSTNAME:PORT#;HOSTNAME2:PORT2#, this function returns the FIRST IPEndPoint. Defaults to port 80 if not specified.
Warning: DNS resolution is slow, so use this function wisely.
| |
| IPEndPointListFromHostPortString |
Given a string/list in the form HOSTNAME:PORT#;HOSTNAME2:PORT2#, this function returns all IPEndPoints for ALL listed hosts. Defaults to port 80 if not specified.
Warning: DNS resolution is slow, so use this function wisely.
| |
| IPFromString |
This function attempts to be a ~fast~ way to return an IP from a hoststring that contains an IPv4/6-Literal.
| |
| IsBinaryMIME |
Determines if the specified MIME type is "binary" in nature.
| |
| IsBrowserProcessName |
For a given process name, returns a bool indicating whether this is a known browser process name.
| |
| IsCommentUserSupplied |
Returns TRUE if the string is non-empty and not of the pattern "[#123]"
Necessary because SAZ-saving logic autogenerates comments of that form
| |
| isLocalhost |
This function cracks a sHostPort string to determine if the address
refers to the local computer
| |
| isLocalhostname |
Determines if the specified Hostname is a either 'localhost' or an IPv4 or IPv6 loopback literal
| |
| IsNullOrEmpty |
Returns TRUE if the array is null or contains 0 bytes
| |
| isPlainHostName |
This function cracks a sHostPort string to determine if the address
refers to a "local" site
| |
| IsRedirectStatus | ||
| isUnsupportedEncoding |
Implements a BlockList for "unknown" encodings that the utilDecode* functions cannot handle
| |
| IsUserAnAdmin |
Returns TRUE if the user is running Elevated. Requires WinXP to Win8
| |
| JoinByteArrays |
Create a new byte[] containing the contents of two other byte arrays.
| |
| LaunchHyperlink |
Launch the user's browser to a hyperlink. This function traps exceptions and notifies the user via UI dialog.
| |
| ObtainFilenames | ||
| ObtainOpenFilename(String, String) |
Queries the user for an OPEN filename
| |
| ObtainOpenFilename(String, String, String) |
Queries the user for an OPEN filename
| |
| ObtainSaveFilename(String, String) |
Queries the user for a filename
| |
| ObtainSaveFilename(String, String, String) |
Queries the user for a filename
| |
| Parameterize(String) | ||
| Parameterize(String, Boolean) |
Tokenize a string into tokens. Delimits on unquoted whitespace ; quote marks are dropped unless preceded by \ characters.
Some special hackery to allow trailing slash not escape the final character of the entire input, so that:
prefs set fiddler.config.path.vsplugins "F:\users\ericlaw\VSWebTest\"
...doesn't end up with a trailing quote.
| |
| PlaySoundFile | ||
| PrefixEllipsizeIfNeeded | ||
| ReadEntireStream(Stream) | ||
| ReadEntireStream(Stream, Byte) |
Fills an array completely using the provided stream. Unlike a normal .Read(), this one will always fully fill the array unless the Stream throws.
| |
| ReadSessionArchive(String, Boolean) | ||
| ReadSessionArchive(String, Boolean, String) |
Reads a Session Archive Zip file into an array of Session objects
| |
| ReadSessionArchive(String, Boolean, String, GetPasswordDelegate) |
Reads a Session Archive Zip file into an array of Session objects
| |
| RecoverMemory |
Garbage collect and, if possible, compact the Large Object heap
| |
| RunExecutable |
Wrapper for Process.Start that shows error messages in the event of failure.
| |
| RunExecutableAndWait |
Run an executable and wait for it to exit, notifying the user of any exceptions.
| |
| SetRegistryString |
Save a string to the registry. Correctly handles null Value, saving as String.Empty
| |
| TrimAfter(String, Char) |
Returns the "Head" of a string, before and not including the first instance of specified delimiter.
| |
| TrimAfter(String, Int32) |
[Deprecated] Ensures that the target string is iMaxLength or fewer characters
| |
| TrimAfter(String, String) |
Returns the "Head" of a string, before and not including a specified search string.
| |
| TrimBefore(String, Char) |
Returns the "Tail" of a string, after (but NOT including) the First instance of specified delimiter.
See also | |
| TrimBefore(String, String) |
Returns the "Tail" of a string, after (but NOT including) the First instance of specified search string.
| |
| TrimBeforeLast(String, Char) |
Returns the "Tail" of a string, after (but not including) the Last instance of specified delimiter.
| |
| TrimBeforeLast(String, String) |
Returns the "Tail" of a string, after (but not including) the Last instance of specified substring.
| |
| TrimTo |
Ensures that the target string is iMaxLength or fewer characters
| |
| TrimUpTo |
Returns the "Tail" of a string, after (and including) the first instance of specified search string.
| |
| TryHexParse |
Try parsing the string for a Hex-formatted int. If it fails, return false and 0 in iOutput.
| |
| UNSTABLE_DescribeClientHello | ||
| UNSTABLE_DescribeServerHello | ||
| UrlDecode |
Convert the %-encoded string into a string, interpreting %-escape sequences as UTF-8 characters
| |
| UrlEncode(String) | ||
| UrlEncode(String, Encoding) | ||
| UrlPathEncode |
Replaces System.Web.HttpUtility.UrlPathEncode(str).
| |
| utilDecodeHTTPBody(HTTPHeaders, Byte) |
Remove all encodings from arrBody, based on those specified in the supplied HTTP headers; DOES NOT MODIFY HEADERS.
Throws on errors.
| |
| utilDecodeHTTPBody(HTTPHeaders, Byte, Boolean) |
Remove all encodings from arrBody, based on those specified in the supplied HTTP headers;
DOES NOT MODIFY HEADERS. DOES NOT HANDLE UNSUPPORTED ENCODINGS WELL.
Throws on errors.
| |
| WriteArrayToFile |
Writes arrBytes to a file, creating the target directory and overwriting if the file exists.
| |
| WriteSessionArchive |
Create a Session Archive Zip file containing the specified sessions
| |
| XpressExpand |
Decompress a byte array that was compressed using Microsoft's Xpress Raw format.
Available only on Windows 8+
| |
| ZLibExpand |
Decompress an array compressed using an Zlib DEFLATE stream. Not a HTTP Encoding; it's used internally in the PNG format.
|
| Name | Description | |
|---|---|---|
| emptyByteArray |
A static byte array containing 0 elements. Use to avoid having many copies of an empty byte[] floating around.
| |
| sCommonRequestHeaders | ||
| sCommonResponseHeaders |