• Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • NEW: Design Kits for Figma
    • Online Training
    • Document Processing Library
    • Embedded Reporting for web and desktop
    Web
    Kendo UI UI for jQuery UI for Angular UI for React UI for Vue UI for ASP.NET AJAX UI for ASP.NET MVC UI for ASP.NET Core UI for Blazor UI for Silverlight UI for PHP UI for JSP
    Mobile
    UI for .NET MAUI UI for Xamarin
    Document Management
    Telerik Document Processing
    Desktop
    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF UI for UWP
    Reporting & Mocking
    Telerik Reporting Telerik Report Server Telerik JustMock
    Automated Testing
    Test Studio Test Studio Dev Edition
    CMS
    Sitefinity
    UI/UX Design
    Unite UX
    Debugging
    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Jam FiddlerCap FiddlerCore
    Extended Reality
    UI for Unity XR
    Free Tools
    JustAssembly JustDecompile VB.NET to C# Converter Testing Framework
    View all products
  • Overview
    • jQuery
    • Angular
    • React
    • Vue
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Docs & Support
  • Pricing
  • Search
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

Class ServerChatter

The ServerChatter object is responsible for transmitting the Request to the destination server and retrieving its Response.

Inheritance
System.Object
ChatterBase
ServerChatter
Inherited Members
ChatterBase.AreHeadersAvailable(Session)
ChatterBase.TakeHTTP2EntityAsync(Session)
ChatterBase.StreamHTTP2BodyPart(Session, Int64, Byte[], Boolean)
Namespace: Fiddler
Assembly: FiddlerCore.dll

Syntax

public class ServerChatter : ChatterBase
Remarks

This class maintains its own PipeReadBuffer that it fills from the created or reused ServerPipe. After it determines that a complete response is present, it allows the caller to grab that array using the TakeEntity method. If unsatisfied with the result (e.g. a network error), the caller can call Initialize() and SendRequest() again.

Fields

m_lngLeakedOffset

Indicates how much of _responseData buffer has already been streamed to the client

Declaration
protected long m_lngLeakedOffset
Field Value
System.Int64

m_session

The session to which this ServerChatter belongs

Declaration
protected Session m_session
Field Value
Session

pipeServer

The pipeServer represents Fiddler's connection to the server.

Declaration
public ServerPipe pipeServer
Field Value
ServerPipe

Properties

bServerSocketReused

Was this request serviced from a reused server connection?

Declaration
public bool bServerSocketReused { get; }
Property Value
System.Boolean

bWasForwarded

Was this request forwarded to a gateway?

Declaration
public bool bWasForwarded { get; set; }
Property Value
System.Boolean

data

The stream that holds the server response.

Declaration
protected override MemoryStream data { get; }
Property Value
System.IO.MemoryStream

Overrides
ChatterBase.data

headers

The HTTP headers of the server's response

Declaration
public HTTPResponseHeaders headers { get; set; }
Property Value
HTTPResponseHeaders

isRequest

This is a server connection -> return false for isRequest

Declaration
protected override bool isRequest { get; }
Property Value
System.Boolean

Overrides
ChatterBase.isRequest

Item[String]

Simple indexer into the Response Headers object

Declaration
public string this[string sHeader] { get; set; }
Parameters
System.String sHeader

Property Value
System.String

iTTFB

DEPRECATED: You should use the Timers object on the Session object instead. The number of milliseconds between the start of sending the request to the server to the first byte of the server's response

Declaration
public int iTTFB { get; }
Property Value
System.Int32

iTTLB

DEPRECATED: You should use the Timers object on the Session object instead. The number of milliseconds between the start of sending the request to the server to the last byte of the server's response.

Declaration
public int iTTLB { get; }
Property Value
System.Int32

MIMEType

Get the MIME type (sans Character set or other attributes) from the HTTP Content-Type response header, or String.Empty if missing.

Declaration
public string MIMEType { get; }
Property Value
System.String

trailers

The HTTP trailers of the server's response

Declaration
public HTTPResponseHeaders trailers { get; set; }
Property Value
HTTPResponseHeaders

Methods

_deleteInformationalMessage()

Deletes a single HTTP/1xx header block from the Response stream and adjusts all header-reading state to start over from the top of the stream. Note: If 'fiddler.network.leakhttp1xx' is TRUE, then the 1xx message will have been leaked before calling this method.

Declaration
protected virtual void _deleteInformationalMessage()

_EnableStreamingIfAppropriate()

When the headers first arrive, update bBufferResponse based on their contents.

Declaration
protected void _EnableStreamingIfAppropriate()

ClearHeaders()

Clear headers so they can be read again

Declaration
protected void ClearHeaders()

LeakResponseBytesAsync()

Leak the current bytes of the response to client. We wait for the full header set before starting to stream for a variety of impossible-to-change reasons.

Declaration
protected Task<bool> LeakResponseBytesAsync()
Returns
System.Threading.Tasks.Task<System.Boolean>

Returns TRUE if response bytes were leaked, false otherwise (e.g. write error). THROWS if "fiddler.network.streaming.abortifclientaborts" is TRUE

ParseResponseForHeaders(String[])

Parse the HTTP Response for Headers.

Declaration
protected virtual bool ParseResponseForHeaders(string[] arrHeaderLines)
Parameters
System.String[] arrHeaderLines

Returns
System.Boolean

True if headers were created

Getting Started
  • Try Now
Community
  • Forums
  • Blogs
  • Feedback Portal

Copyright © 2019 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.