/// <summary> /// /// </summary> /// <returns></returns> public RequestParameterSet GetRequestData() { var result = new RequestParameterSet(); PrepareDictionaryData(result.Query, _url.Query,true); if (_httpMethod.ToUpper() == "POST") { if (null!=_contentType && _contentType.Contains("multipart/form-data")) { ReadMultipartForm(result); } else { var buffer = new byte[_contentLength]; _inputStream.Read(buffer, 0, (int)_contentLength); var str = _contentEncoding.GetString(buffer); result.PostData = str; try { PrepareDictionaryData(result.Form, str,false); } catch { } } } return result; }
private void ReadMultipartForm(RequestParameterSet result) { var mainbufferStream = new MemoryStream(); _inputStream.CopyTo(mainbufferStream); var context = new MiltipartReadContext( mainbufferStream.GetBuffer(), _contentType,_contentEncoding,result); context.Read(); }
public MiltipartReadContext(byte[] buffer, string contentType, Encoding contentEncoding, RequestParameterSet result) { _buffer = buffer; _encoding = contentEncoding; _currentType = ""; _boundaryBytes = _encoding.GetBytes("--" + contentType.Split(';')[1].Split('=')[1]); _result = result; _start = 0; _idx = 0; _end = 0; _currentName = ""; _currentFileName = ""; }