Show / Hide Table of Contents

# Class SessionEventArgs

Holds info related to a single proxy session (single request/response sequence). A proxy session is bounded to a single connection from client. A proxy session ends when client terminates connection to proxy or when server terminates connection from proxy.

##### Inheritance

Object
EventArgs
ProxyEventArgsBase
SessionEventArgsBase
SessionEventArgs

##### Implements

IDisposable

##### Inherited Members

SessionEventArgsBase.ClientConnectionId
SessionEventArgsBase.ServerConnectionId
SessionEventArgsBase.BufferPool
SessionEventArgsBase.ExceptionFunc
SessionEventArgsBase.TimeLine
SessionEventArgsBase.UserData
SessionEventArgsBase.EnableWinAuth
SessionEventArgsBase.IsHttps
SessionEventArgsBase.ClientLocalEndPoint
SessionEventArgsBase.ClientRemoteEndPoint
SessionEventArgsBase.ClientEndPoint
SessionEventArgsBase.HttpClient
SessionEventArgsBase.WebSession
SessionEventArgsBase.CustomUpStreamProxy
SessionEventArgsBase.CustomUpStreamProxyUsed
SessionEventArgsBase.ProxyEndPoint
SessionEventArgsBase.LocalEndPoint
SessionEventArgsBase.IsTransparent
SessionEventArgsBase.IsSocks
SessionEventArgsBase.Exception
SessionEventArgsBase.DataSent
SessionEventArgsBase.DataReceived
SessionEventArgsBase.TerminateSession()
ProxyEventArgsBase.ClientUserData
EventArgs.Empty
Object.ToString()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()

###### Namespace: Titanium.Web.Proxy.EventArguments

###### Assembly: Titanium.Web.Proxy.dll

##### Syntax

    public class SessionEventArgs : SessionEventArgsBase, IDisposable

### Properties

| Improve this Doc View Source

#### IsPromise

Is this session a HTTP/2 promise?

##### Declaration

    public bool IsPromise { get; }

##### Property Value

Type | Description
--- | ---
Boolean |

| Improve this Doc View Source

#### ReRequest

Should we send the request again ?

##### Declaration

    public bool ReRequest { get; set; }

##### Property Value

Type | Description
--- | ---
Boolean |

| Improve this Doc View Source

#### WebSocketDecoder

##### Declaration

    [Obsolete("Use [WebSocketDecoderReceive] instead")]
    public WebSocketDecoder WebSocketDecoder { get; }

##### Property Value

Type | Description
--- | ---
WebSocketDecoder |

| Improve this Doc View Source

#### WebSocketDecoderReceive

##### Declaration

    public WebSocketDecoder WebSocketDecoderReceive { get; }

##### Property Value

Type | Description
--- | ---
WebSocketDecoder |

| Improve this Doc View Source

#### WebSocketDecoderSend

##### Declaration

    public WebSocketDecoder WebSocketDecoderSend { get; }

##### Property Value

Type | Description
--- | ---
WebSocketDecoder |

### Methods

| Improve this Doc View Source

#### Dispose()

Implement any cleanup here

##### Declaration

    public override void Dispose()

##### Overrides

SessionEventArgsBase.Dispose()
| Improve this Doc View Source

#### GenericResponse(Byte[], HttpStatusCode, IDictionary<String, HttpHeader>, Boolean)

Before request is made to server respond with the specified byte[], the specified status to client. And then ignore the request.

##### Declaration

    public void GenericResponse(byte[] result, HttpStatusCode status, IDictionary<string, HttpHeader> headers, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
Byte[] | result | The bytes to sent.
HttpStatusCode | status | The HTTP status code.
IDictionary<String, HttpHeader> | headers | The HTTP headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### GenericResponse(Byte[], HttpStatusCode, IEnumerable<HttpHeader>, Boolean)

Before request is made to server respond with the specified byte[], the specified status to client. And then ignore the request.

##### Declaration

    public void GenericResponse(byte[] result, HttpStatusCode status, IEnumerable<HttpHeader> headers, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
Byte[] | result | The bytes to sent.
HttpStatusCode | status | The HTTP status code.
IEnumerable<HttpHeader> | headers | The HTTP headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### GenericResponse(String, HttpStatusCode, IDictionary<String, HttpHeader>, Boolean)

Before request is made to server respond with the specified HTML string and the specified status to client. And then ignore the request.

##### Declaration

    public void GenericResponse(string html, HttpStatusCode status, IDictionary<string, HttpHeader> headers, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
String | html | The html content.
HttpStatusCode | status | The HTTP status code.
IDictionary<String, HttpHeader> | headers | The HTTP headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### GenericResponse(String, HttpStatusCode, IEnumerable<HttpHeader>, Boolean)

Before request is made to server respond with the specified HTML string and the specified status to client. And then ignore the request.

##### Declaration

    public void GenericResponse(string html, HttpStatusCode status, IEnumerable<HttpHeader> headers = null, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
String | html | The html content.
HttpStatusCode | status | The HTTP status code.
IEnumerable<HttpHeader> | headers | The HTTP headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### GetRequestBody(CancellationToken)

Gets the request body as bytes.

##### Declaration

    public Task<byte[]> GetRequestBody(CancellationToken cancellationToken = default(CancellationToken))

##### Parameters

Type | Name | Description
--- | --- | ---
CancellationToken | cancellationToken | Optional cancellation token for this async task.

##### Returns

Type | Description
--- | ---
Task<Byte[]> | The body as bytes.

| Improve this Doc View Source

#### GetRequestBodyAsString(CancellationToken)

Gets the request body as string.

##### Declaration

    public Task<string> GetRequestBodyAsString(CancellationToken cancellationToken = default(CancellationToken))

##### Parameters

Type | Name | Description
--- | --- | ---
CancellationToken | cancellationToken | Optional cancellation token for this async task.

##### Returns

Type | Description
--- | ---
Task<String> | The body as string.

| Improve this Doc View Source

#### GetResponseBody(CancellationToken)

Gets the response body as bytes.

##### Declaration

    public Task<byte[]> GetResponseBody(CancellationToken cancellationToken = default(CancellationToken))

##### Parameters

Type | Name | Description
--- | --- | ---
CancellationToken | cancellationToken | Optional cancellation token for this async task.

##### Returns

Type | Description
--- | ---
Task<Byte[]> | The resulting bytes.

| Improve this Doc View Source

#### GetResponseBodyAsString(CancellationToken)

Gets the response body as string.

##### Declaration

    public Task<string> GetResponseBodyAsString(CancellationToken cancellationToken = default(CancellationToken))

##### Parameters

Type | Name | Description
--- | --- | ---
CancellationToken | cancellationToken | Optional cancellation token for this async task.

##### Returns

Type | Description
--- | ---
Task<String> | The string body.

| Improve this Doc View Source

#### Ok(Byte[], IDictionary<String, HttpHeader>, Boolean)

Before request is made to server respond with the specified byte[] to client and ignore the request.

##### Declaration

    public void Ok(byte[] result, IDictionary<string, HttpHeader> headers, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
Byte[] | result | The html content bytes.
IDictionary<String, HttpHeader> | headers | The HTTP headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### Ok(Byte[], IEnumerable<HttpHeader>, Boolean)

Before request is made to server respond with the specified byte[] to client and ignore the request.

##### Declaration

    public void Ok(byte[] result, IEnumerable<HttpHeader> headers = null, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
Byte[] | result | The html content bytes.
IEnumerable<HttpHeader> | headers | The HTTP headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### Ok(String, IDictionary<String, HttpHeader>, Boolean)

Before request is made to server respond with the specified HTML string to client and ignore the request.

##### Declaration

    public void Ok(string html, IDictionary<string, HttpHeader> headers, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
String | html | HTML content to sent.
IDictionary<String, HttpHeader> | headers | HTTP response headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### Ok(String, IEnumerable<HttpHeader>, Boolean)

Before request is made to server respond with the specified HTML string to client and ignore the request.

##### Declaration

    public void Ok(string html, IEnumerable<HttpHeader> headers = null, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
String | html | HTML content to sent.
IEnumerable<HttpHeader> | headers | HTTP response headers.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### Redirect(String, Boolean)

Redirect to provided URL.

##### Declaration

    public void Redirect(string url, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
String | url | The URL to redirect.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### Respond(Response, Boolean)

Respond with given response object to client.

##### Declaration

    public void Respond(Response response, bool closeServerConnection = false)

##### Parameters

Type | Name | Description
--- | --- | ---
Response | response | The response object.
Boolean | closeServerConnection | Close the server connection used by request if any?

| Improve this Doc View Source

#### SetRequestBody(Byte[])

Sets the request body.

##### Declaration

    public void SetRequestBody(byte[] body)

##### Parameters

Type | Name | Description
--- | --- | ---
Byte[] | body | The request body bytes.

| Improve this Doc View Source

#### SetRequestBodyString(String)

Sets the body with the specified string.

##### Declaration

    public void SetRequestBodyString(string body)

##### Parameters

Type | Name | Description
--- | --- | ---
String | body | The request body string to set.

| Improve this Doc View Source

#### SetResponseBody(Byte[])

Set the response body bytes.

##### Declaration

    public void SetResponseBody(byte[] body)

##### Parameters

Type | Name | Description
--- | --- | ---
Byte[] | body | The body bytes to set.

| Improve this Doc View Source

#### SetResponseBodyString(String)

Replace the response body with the specified string.

##### Declaration

    public void SetResponseBodyString(string body)

##### Parameters

Type | Name | Description
--- | --- | ---
String | body | The body string to set.

| Improve this Doc View Source

#### TerminateServerConnection()

Terminate the connection to server at the end of this HTTP request/response session.

##### Declaration

    public void TerminateServerConnection()

### Events

| Improve this Doc View Source

#### MultipartRequestPartSent

Occurs when multipart request part sent.

##### Declaration

    public event EventHandler<MultipartRequestPartSentEventArgs> MultipartRequestPartSent

##### Event Type

Type | Description
--- | ---
EventHandler<MultipartRequestPartSentEventArgs> |

### Implements

System.IDisposable