/// <summary> /// 计算长度 /// </summary> /// <returns></returns> public override long ComputeLength() { if (PostedFile.Count != 0) { var boundary = "ifish_network_client_" + base.Message.RequestBoundary.DefaultForEmpty(Guid.NewGuid().ToString().Replace("-", "")); WebRequset.ContentType = "multipart/form-data; boundary=" + boundary; var size = StringField.Select( s => (long)2 //-- + boundary.Length //boundary + 2 //\r\n + 45 // content-disposition + s.Key.Length //key + Message.Encoding.GetByteCount(s.Value) //value + 2 //\r\n ).Sum(); //attach file size += PostedFile.Sum(s => s.ComputeLength()); size += 4 + boundary.Length; //结束标记 return(size); } PreProcessData(); return(_processedData.Select(s => s.Key.Length + 1 + s.Value.Length).Sum() + _processedData.Count - 1); }