Я хочу добавить пользовательский заголовок HTTP (, хэшированный и подписанный ) , закодированный в кодировке utf8 (Encoding.UTF8.GetString). Если данные POSTed - IIS , Ошибка Bad Request (400).
Если пользовательский заголовок HTTP кодируется в кодировке base64, и проблем нет.
Но наш партнер настаивает на использовании кодировки utf8.
Я хочу знать, вызван ли этот «Неверный запрос (400)» только IIS?
А вот и код:
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
HttpRequestMessage msg = new HttpRequestMessage(HttpMethod.Post,
"https://putsreq.com/AIWKVacHh2ok5FMGFpEg");
var reqBody = "{'hello': 'world'}";
msg.Content = new StringContent(reqBody);
msg.Content.Headers.ContentType = new
MediaTypeWithQualityHeaderValue("application/json");
var signature = SignMessage(reqBody); //hash and sign the message using
//private key
var signatureString = Encoding.UTF8.GetString(signature);
msg.Headers.Add("signature", signature);
try{
var response = await client.SendAsync(msg);
response.EnsureSuccessStatusCode();
//Continue if success
}catch(Exception ex){
Trace.WriteLine("Exception: " + ex);
}