private void DecodeBody(IRequest request) { Encoding encoding = null; if (request.ContentType != null) { string encodingStr = request.ContentType.Parameters["Encoding"]; if (!string.IsNullOrEmpty(encodingStr)) { encoding = Encoding.GetEncoding(encodingStr); } } if (encoding == null) { encoding = Encoding.UTF8; } // process body. DecodedData data = _bodyDecoders.Decode(request.Body, request.ContentType, encoding); if (data == null) { return; } var request1 = (Request)request; request1.Form = data.Parameters; request1.Files = data.Files; }
public override string ToString() { var writeDecodedData = DecodedData.Replace("\n", "\\n"); writeDecodedData = writeDecodedData.Replace("\r", "\\r"); writeDecodedData = writeDecodedData.Replace("\t", "\\t"); return($"DecodedData: {writeDecodedData};\t RestData: {RestData}"); }
public string GetDataAsString() { if (Payload != null) { return(Payload); } if (DecodedData != null) { Payload = DecodedData.ToString(); } return(Payload); }
/// <summary> /// 解析消息体 /// </summary> /// <param name="request">请求消息</param> protected virtual void DecodeBody(IRequest request) { // 消息编码格式 Encoding encoding = null; if (request.ContentType != null) { string encodingStr = request.ContentType.Parameters["Encoding"]; if (!string.IsNullOrEmpty(encodingStr)) { encoding = Encoding.GetEncoding(encodingStr); } } // 默认UTF8编码 if (encoding == null) { encoding = Encoding.UTF8; } // 由指定的消息体解析器解析消息体 DecodedData data = _bodyDecoders.Decode(request.Body, request.ContentType, encoding); if (data == null) { return; } // 违反了里氏替换原则 if (!(request is Request)) { throw new InternalServerException("Request object has to derive from Request (sorry for breaking LSP)."); } var r = (Request)request; r.Form = data.Parameters; r.Files = data.Files; }
/// <summary> /// Constructor with binary block data for encoding /// </summary> /// <param name="startAddress">start address of the block</param> /// <param name="bin">binary block data as source</param> public Parser(int startAddress, byte[] bin) : this() { DecodedData.AddData(startAddress, bin); }