пятница, 30 ноября 2012 г.

С#: Post запрос multipart/form-data

Необходимо отправить запрос с массивом байт, полученных с картинки:
    private static void sendFile(byte[] bytes, String url)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.Method = WebRequestMethods.Http.Post;
            request.KeepAlive = true;
            request.Credentials = System.Net.CredentialCache.DefaultCredentials;
            request.Timeout = 120000;
            string boundary = "--------" + DateTime.Now.Ticks.ToString("x");
            request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
            MemoryStream ms = new MemoryStream();
            StreamWriter sw = new StreamWriter(ms);
            sw.Write("\r\n--" + boundary + "\r\n");
            sw.Write("Content-Disposition: form-data;"
                                    + "name=\"{0}\";"
                                    + "filename=\"{1}\""
                                    + "\r\nContent-Type: {2}\r\n\r\n",
                                    "imagefile",
                                    "image.jpg",
                                    "image");

            sw.Flush();
            ms.Write(bytes, 0, bytes.Length);
            sw.Write("\r\n--" + boundary + "--\r\n");
            sw.Flush();
            request.ContentLength = ms.Length;
            System.IO.Stream sendStream = request.GetRequestStream();
            ms.WriteTo(sendStream);
            ms.Close();
            WebResponse response = request.GetResponse();
        }
        catch (WebException e)
        {
            Console.WriteLine(e);
            System.Windows.Forms.MessageBox.Show("Error= " + e);
        }
        catch (Exception e) {
            Console.WriteLine(e);
            System.Windows.Forms.MessageBox.Show("Error= " + e);
        }
    }

Комментариев нет:

Отправить комментарий