private string HttpUploadFile(string url, NameValueCollection nvc, Stream stream, string file)
{
var boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
var boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");
var wr = (HttpWebRequest)WebRequest.Create(url);
wr.ContentType = "multipart/form-data; boundary=" + boundary;
wr.Method = "POST";
wr.KeepAlive = true;
wr.Credentials = CredentialCache.DefaultCredentials;
wr.Headers.Add("Accept-Language", "en-gb,en;q=0.5");
wr.Headers.Add("Accept-Encoding", "gzip,deflate");
wr.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
wr.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
wr.AllowWriteStreamBuffering = false;
wr.SendChunked = false;
//wr.Timeout = 1000000000;
const string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n";
var header = string.Format(headerTemplate, "file", file, "application/octet-stream");
var headerbytes = System.Text.Encoding.UTF8.GetBytes(header);
const string formdataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";
var nvcByteCount = 0;
foreach (string key in nvc.Keys)
{
var formitem = string.Format(formdataTemplate, key, nvc[key]);
var formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
nvcByteCount += formitembytes.Length;
}
var trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
wr.ContentLength = stream.Length + headerbytes.Length + ((nvc.Count + 1) * boundarybytes.Length) + nvcByteCount + trailer.Length;
var rs = wr.GetRequestStream();
foreach (string key in nvc.Keys)
{
rs.Write(boundarybytes, 0, boundarybytes.Length);
var formitem = string.Format(formdataTemplate, key, nvc[key]);
var formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
rs.Write(formitembytes, 0, formitembytes.Length);
}
rs.Write(boundarybytes, 0, boundarybytes.Length);
rs.Write(headerbytes, 0, headerbytes.Length);
var buffer = new byte[bufferSize];
int bytesRead;
var bytesUploaded = 0;
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) != 0)
{
rs.Write(buffer, 0, bytesRead);
//raise event with upload progress
bytesUploaded += bytesRead;
var eventArgs = new UploadProgressEventArgs
{
bytesUploaded = bytesUploaded,
bytesTotal = stream.Length
};
ProgressEvent(this, eventArgs);
}
rs.Write(trailer, 0, trailer.Length);
rs.Close();
HttpWebResponse wresp = null;
var rawResponse = "";
try
{
wresp = (HttpWebResponse)wr.GetResponse();
var stream2 = wresp.GetResponseStream();
var reader2 = new StreamReader(stream2);
rawResponse = reader2.ReadToEnd();
}
catch (Exception ex)
{
if (wresp != null)
{
wresp.Close();
}
}
var guid = "";
if (rawResponse.Length > 0)
{
var doc = new XmlDocument();
doc.LoadXml(rawResponse);
string[] keyParts = doc.SelectSingleNode("//Key").InnerText.Split('/');
guid = keyParts[keyParts.Length - 2];
}
return guid;
}
public Int64 processVideo ( VideoProcessQuery query )