システムトレードでオーダーを出すとき、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;
// 略
}