public HttpRequestBodyString(string body, IValue encoding = null, ByteOrderMarkUsageEnum bomUsage = ByteOrderMarkUsageEnum.Auto) { _data = body; var addBom = false; if (encoding == null) { if (bomUsage == ByteOrderMarkUsageEnum.Use) { addBom = true; } _encoding = new UTF8Encoding(addBom); } else { if (encoding.AsString().Equals("utf-16", StringComparison.OrdinalIgnoreCase) || encoding.AsString().Equals("utf-32", StringComparison.OrdinalIgnoreCase) && bomUsage == ByteOrderMarkUsageEnum.Auto) { addBom = true; } else { addBom = bomUsage == ByteOrderMarkUsageEnum.Use; } _encoding = TextEncodingEnum.GetEncoding(encoding, addBom); } }
public HttpRequestBodyBinary(string body, IValue encoding = null, ByteOrderMarkUsageEnum bomUsage = ByteOrderMarkUsageEnum.Auto) { var utfs = new List <string> { "utf-16", "utf-32" }; var addBom = utfs.Contains(encoding?.AsString(), StringComparer.OrdinalIgnoreCase) && bomUsage == ByteOrderMarkUsageEnum.Auto || bomUsage == ByteOrderMarkUsageEnum.Use; var encoder = encoding == null ? new UTF8Encoding(addBom) : TextEncodingEnum.GetEncoding(encoding, addBom); var byteArray = encoder.GetBytes(body); _memoryStream.Write(byteArray, 0, byteArray.Length); }
public void SetBodyFromString(string data, IValue encoding = null, ByteOrderMarkUsageEnum bomUsage = ByteOrderMarkUsageEnum.Auto) { SetBody(new HttpRequestBodyString(data, encoding, bomUsage)); }