Darabonba/Utils/FormUtils.cs (48 lines of code) (raw):
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Web;
namespace Darabonba.Utils
{
public class FormUtils
{
public static string ToFormString(Dictionary<string, object> map)
{
if (map == null || map.Count <= 0)
{
return "";
}
StringBuilder result = new StringBuilder();
bool first = true;
foreach (var entry in map)
{
if (entry.Value == null)
{
continue;
}
if (first)
{
first = false;
}
else
{
result.Append("&");
}
result.Append(HttpUtility.UrlEncode(entry.Key, Encoding.UTF8));
result.Append("=");
result.Append(HttpUtility.UrlEncode(entry.Value.ToSafeString(""), Encoding.UTF8));
}
return result.ToString();
}
public static string GetBoundary()
{
long num = (long)Math.Floor((new Random()).NextDouble() * 100000000000000D); ;
return num.ToString();
}
public static Stream ToFileForm(Dictionary<string, object> form, string boundary)
{
return new FileFormStream(form, boundary);
}
}
}