Table of Contents

Class HttpRequestMessageExtensions

Namespace
Songhay.Extensions
Assembly
SonghayCore.dll

Extensions of HttpRequestMessage

public static class HttpRequestMessageExtensions
Inheritance
HttpRequestMessageExtensions
Inherited Members

Methods

GetContentAsync(HttpRequestMessage?)

Gets a string from the derived HttpResponseMessage.

public static Task<string> GetContentAsync(this HttpRequestMessage? request)

Parameters

request HttpRequestMessage

The request.

Returns

Task<string>

GetContentAsync(HttpRequestMessage?, Action<HttpResponseMessage>?)

Gets a string from the derived HttpResponseMessage.

public static Task<string> GetContentAsync(this HttpRequestMessage? request, Action<HttpResponseMessage>? responseMessageAction)

Parameters

request HttpRequestMessage

The request.

responseMessageAction Action<HttpResponseMessage>

The response message action.

Returns

Task<string>

GetContentAsync(HttpRequestMessage?, Action<HttpResponseMessage>?, Func<HttpClient>?)

Gets a string from the derived HttpResponseMessage.

public static Task<string> GetContentAsync(this HttpRequestMessage? request, Action<HttpResponseMessage>? responseMessageAction, Func<HttpClient>? optionalClientGetter)

Parameters

request HttpRequestMessage

The request.

responseMessageAction Action<HttpResponseMessage>

The response message action.

optionalClientGetter Func<HttpClient>

The optional client getter.

Returns

Task<string>

SendAsync(HttpRequestMessage?)

public static Task<HttpResponseMessage> SendAsync(this HttpRequestMessage? request)

Parameters

request HttpRequestMessage

Returns

Task<HttpResponseMessage>

SendAsync(HttpRequestMessage?, Action<HttpRequestMessage>?)

public static Task<HttpResponseMessage> SendAsync(this HttpRequestMessage? request, Action<HttpRequestMessage>? requestMessageAction)

Parameters

request HttpRequestMessage

The request.

requestMessageAction Action<HttpRequestMessage>

The request message action.

Returns

Task<HttpResponseMessage>

SendAsync(HttpRequestMessage?, Action<HttpRequestMessage>?, Func<HttpClient>?, HttpCompletionOption)

public static Task<HttpResponseMessage> SendAsync(this HttpRequestMessage? request, Action<HttpRequestMessage>? requestMessageAction, Func<HttpClient>? optionalClientGetter, HttpCompletionOption completionOption)

Parameters

request HttpRequestMessage

The request.

requestMessageAction Action<HttpRequestMessage>

The request message action.

optionalClientGetter Func<HttpClient>

The optional client getter.

completionOption HttpCompletionOption

the HttpCompletionOption.

Returns

Task<HttpResponseMessage>

SendBodyAsync(HttpRequestMessage?, string?)

Calls SendAsync(HttpRequestMessage) with the specified request body, UTF8 and ApplicationJson.

public static Task<HttpResponseMessage> SendBodyAsync(this HttpRequestMessage? request, string? requestBody)

Parameters

request HttpRequestMessage

The request.

requestBody string

The request body.

Returns

Task<HttpResponseMessage>

SendBodyAsync(HttpRequestMessage?, string?, Encoding, string)

Calls SendAsync(HttpRequestMessage) with the specified request body.

public static Task<HttpResponseMessage> SendBodyAsync(this HttpRequestMessage? request, string? requestBody, Encoding encoding, string mediaType)

Parameters

request HttpRequestMessage

The request.

requestBody string

The request body.

encoding Encoding

The encoding.

mediaType string

Type of the media.

Returns

Task<HttpResponseMessage>

SendBodyAsync(HttpRequestMessage?, string?, Encoding, string, Action<HttpRequestMessage>)

Calls SendAsync(HttpRequestMessage) with the specified request body.

public static Task<HttpResponseMessage> SendBodyAsync(this HttpRequestMessage? request, string? requestBody, Encoding encoding, string mediaType, Action<HttpRequestMessage> requestMessageAction)

Parameters

request HttpRequestMessage

The request.

requestBody string

The request body.

encoding Encoding

The encoding.

mediaType string

Type of the media.

requestMessageAction Action<HttpRequestMessage>

The request message action.

Returns

Task<HttpResponseMessage>

SendBodyAsync(HttpRequestMessage?, string?, Encoding?, string?, Action<HttpRequestMessage>?, Func<HttpClient>?)

Calls SendAsync(HttpRequestMessage) with the specified request body.

public static Task<HttpResponseMessage> SendBodyAsync(this HttpRequestMessage? request, string? requestBody, Encoding? encoding, string? mediaType, Action<HttpRequestMessage>? requestMessageAction, Func<HttpClient>? optionalClientGetter)

Parameters

request HttpRequestMessage

The request.

requestBody string

The request body.

encoding Encoding

The encoding.

mediaType string

Type of the media.

requestMessageAction Action<HttpRequestMessage>

The request message action.

optionalClientGetter Func<HttpClient>

The optional client getter.

Returns

Task<HttpResponseMessage>

ToAzureStorageAuthorizationHeader(HttpRequestMessage?, string?, string?, string?, string?)

public static AuthenticationHeaderValue ToAzureStorageAuthorizationHeader(this HttpRequestMessage? request, string? storageAccountName, string? storageAccountKey, string? eTag, string? md5)

Parameters

request HttpRequestMessage

the HttpRequestMessage

storageAccountName string

the Azure Storage account name

storageAccountKey string

the Azure Storage account shared key

eTag string

entity tag for Web cache validation

md5 string

The MD5 (message-digest algorithm) hash

Returns

AuthenticationHeaderValue

Remarks

There are two Authorization Header schemes supported: SharedKey and SharedKeyLite. This member supports only one of them: SharedKey. For more detail, see “Specifying the Authorization header” [ https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key#specifying-the-authorization-header ]

See also: “Authorize requests to Azure Storage” [ https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage ]

See also: https://github.com/Azure-Samples/storage-dotnet-rest-api-with-auth/tree/master

Provide the md5 and it will check and make sure it matches the requested blob's md5. If it doesn't match, it won't return a value.

Provide an eTag, and it will only make changes to a blob if the current eTag matches, to ensure you don't overwrite someone else's changes.

ToAzureStorageCanonicalizedHeaders(HttpRequestMessage?)

Returns headers, starting with x-ms-, in a canonical format.

public static string ToAzureStorageCanonicalizedHeaders(this HttpRequestMessage? request)

Parameters

request HttpRequestMessage

the HttpRequestMessage

Returns

string

Remarks

ToAzureStorageSignature(HttpRequestMessage?, string?, string?, string?)

Derives the raw representation of the message signature from the HttpRequestMessage.`

public static byte[] ToAzureStorageSignature(this HttpRequestMessage? request, string? storageAccountName, string? eTag, string? md5)

Parameters

request HttpRequestMessage

the HttpRequestMessage

storageAccountName string

The name of the storage account to use.

eTag string

entity tag for Web cache validation

md5 string

The MD5 (message-digest algorithm) hash

Returns

byte[]

Remarks

WithAzureStorageBlockBlobContent(HttpRequestMessage?, string?, string?)

Returns HttpRequestMessage with conventional headers for ByteArrayContent for Azure Storage.

public static HttpRequestMessage WithAzureStorageBlockBlobContent(this HttpRequestMessage? request, string? blobName, string? content)

Parameters

request HttpRequestMessage

the HttpRequestMessage

blobName string

the Azure Storage Blob name

content string

the Azure Storage Blob content

Returns

HttpRequestMessage

WithAzureStorageHeaders(HttpRequestMessage?, DateTime, string?, string?, string?)

Returns HttpRequestMessage with conventional headers for Azure Storage.

public static HttpRequestMessage WithAzureStorageHeaders(this HttpRequestMessage? request, DateTime requestMoment, string? serviceVersion, string? storageAccountName, string? storageAccountKey)

Parameters

request HttpRequestMessage

the HttpRequestMessage

requestMoment DateTime

the moment of the request

serviceVersion string

the version of the storage services to use for a request

storageAccountName string

the Azure Storage account name

storageAccountKey string

the Azure Storage account shared key

Returns

HttpRequestMessage

WithAzureStorageHeaders(HttpRequestMessage?, DateTime, string?, string?, string?, string?, string?)

Returns HttpRequestMessage with the minimum headers required for Azure Storage.

public static HttpRequestMessage WithAzureStorageHeaders(this HttpRequestMessage? request, DateTime requestMoment, string? serviceVersion, string? storageAccountName, string? storageAccountKey, string? eTag, string? md5)

Parameters

request HttpRequestMessage

the HttpRequestMessage

requestMoment DateTime

the moment of the request

serviceVersion string

the version of the storage services to use for a request

storageAccountName string

the Azure Storage account name

storageAccountKey string

the Azure Storage account shared key

eTag string

entity tag for Web cache validation

md5 string

The MD5 (message-digest algorithm) hash

Returns

HttpRequestMessage

Remarks

See https://github.com/Azure-Samples/storage-dotnet-rest-api-with-auth/tree/master

See https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage

See https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key

Provide the md5 and it will check and make sure it matches the requested blob's md5. If it doesn't match, it won't return a value.

Provide an eTag, and it will only make changes to a blob if the current eTag matches, to ensure you don't overwrite someone else's changes.