Beispiel #1
0
 /// <summary>
 /// Transfer-Encoding をデコード
 /// </summary>
 /// <param name="message">HTTP メッセージ</param>
 /// <returns>Transfer-Encoding をデコードされたメッセージボディー</returns>
 public static byte[] GetTransferDecodedBody(this IReadOnlyHttpMessage message)
 {
     if (message.Body == null)
     {
         return(null);
     }
     if (!message.Headers.HasHeader("Transfer-Encoding"))
     {
         return(message.Body);
     }
     return(message.Body.Decode(message.Headers.GetFirstValue("Transfer-Encoding").SplitValue().ToArray()));
 }
Beispiel #2
0
        /// <summary>
        /// メッセージボディを指定した文字エンコーディングで文字列として取得。
        /// Transfer-Encoding, Content-Encoding がある場合は同時にデコードします。
        /// </summary>
        /// <param name="message">HTTP メッセージ</param>
        /// <param name="encoding">文字エンコーディング</param>
        /// <returns>メッセージボディー文字列</returns>
        public static string GetBodyAsString(this IReadOnlyHttpMessage message, Encoding encoding = null)
        {
            var body = message.GetContentDecodedBody();

            if (body == null)
            {
                return("");
            }
            if (encoding != null)
            {
                encoding.GetString(body);
            }
            return(body.AsString(message.Headers.GetCharset()));
        }
Beispiel #3
0
 /// <summary>
 /// Transfer-Encoding をデコード
 /// </summary>
 /// <param name="message">HTTP メッセージ</param>
 /// <returns>Transfer-Encoding をデコードされたメッセージボディー</returns>
 public static IReadOnlyList <byte> GetTransferDecodedBody(this IReadOnlyHttpMessage message)
 => ApplicationLayer.Entities.Http.DecodeExtensions.GetTransferDecodedBody(message);
Beispiel #4
0
 /// <summary>
 /// メッセージボディを指定した文字エンコーディングで文字列として取得。
 /// Transfer-Encoding, Content-Encoding がある場合は同時にデコードします。
 /// </summary>
 /// <param name="message">HTTP メッセージ</param>
 /// <param name="encoding">文字エンコーディング</param>
 /// <returns>メッセージボディー文字列</returns>
 public static string GetBodyAsString(this IReadOnlyHttpMessage message, Encoding encoding = null)
 => ApplicationLayer.Entities.Http.DecodeExtensions.GetBodyAsString(message, encoding);