Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Building on dnolans example, this is the version I could actually get to work (there were some errors with the boundary, encoding wasn't set) :-)</p> <p>To send the data:</p> <pre><code>HttpWebRequest oRequest = null; oRequest = (HttpWebRequest)HttpWebRequest.Create("http://you.url.here"); oRequest.ContentType = "multipart/form-data; boundary=" + PostData.boundary; oRequest.Method = "POST"; PostData pData = new PostData(); Encoding encoding = Encoding.UTF8; Stream oStream = null; /* ... set the parameters, read files, etc. IE: pData.Params.Add(new PostDataParam("email", "example@example.com", PostDataParamType.Field)); pData.Params.Add(new PostDataParam("fileupload", "filename.txt", "filecontents" PostDataParamType.File)); */ byte[] buffer = encoding.GetBytes(pData.GetPostData()); oRequest.ContentLength = buffer.Length; oStream = oRequest.GetRequestStream(); oStream.Write(buffer, 0, buffer.Length); oStream.Close(); HttpWebResponse oResponse = (HttpWebResponse)oRequest.GetResponse(); </code></pre> <p>The PostData class should look like:</p> <pre><code>public class PostData { // Change this if you need to, not necessary public static string boundary = "AaB03x"; private List&lt;PostDataParam&gt; m_Params; public List&lt;PostDataParam&gt; Params { get { return m_Params; } set { m_Params = value; } } public PostData() { m_Params = new List&lt;PostDataParam&gt;(); } /// &lt;summary&gt; /// Returns the parameters array formatted for multi-part/form data /// &lt;/summary&gt; /// &lt;returns&gt;&lt;/returns&gt; public string GetPostData() { StringBuilder sb = new StringBuilder(); foreach (PostDataParam p in m_Params) { sb.AppendLine("--" + boundary); if (p.Type == PostDataParamType.File) { sb.AppendLine(string.Format("Content-Disposition: file; name=\"{0}\"; filename=\"{1}\"", p.Name, p.FileName)); sb.AppendLine("Content-Type: application/octet-stream"); sb.AppendLine(); sb.AppendLine(p.Value); } else { sb.AppendLine(string.Format("Content-Disposition: form-data; name=\"{0}\"", p.Name)); sb.AppendLine(); sb.AppendLine(p.Value); } } sb.AppendLine("--" + boundary + "--"); return sb.ToString(); } } public enum PostDataParamType { Field, File } public class PostDataParam { public PostDataParam(string name, string value, PostDataParamType type) { Name = name; Value = value; Type = type; } public PostDataParam(string name, string filename, string value, PostDataParamType type) { Name = name; Value = value; FileName = filename; Type = type; } public string Name; public string FileName; public string Value; public PostDataParamType Type; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload