HttpClientで、Postするときのコードの最適化

システムトレードでオーダーを出すとき、HttpClientでPostしますが、そのコードの最適化を行います。
よくあるサンプルコードはこんな感じ。

using StringContent content = new StringContent(body);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;

この元になっているbodyは、jsonだったりするので、Utf8Jsonでserializeで作るとUtf8なわけです。
それを、stringにして、StringContent作って、すると内部では、string→utf8変換をして、byte[]のByteArrayContentが作られるわけです。
Utf8→Utf16→Utf8と変換がかかる。
まあ、小さな点ではありますが勿体ない。

なので、以下の様に改善して使っています。

readonly static MediaTypeHeaderValue mediaTypeShare = new MediaTypeHeaderValue("application/json") { CharSet = Encoding.UTF8.WebName };

static async Post(byte[] paramJson) 
{
// 略
    using ByteArrayContent content = new ByteArrayContent(paramJson);
    content.Headers.ContentType = mediaTypeShare;

    request.Content = content;
// 略
}

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です