Sube múltiples archivos en un solo HTTPWebRequest

He creado un servicio que acepta 2 cosas:

1) Un parámetro de cuerpo llamado "tipo".

2) Un archivo csv para ser cargado.

Estoy leyendo estas dos cosas en el lado del servidor de esta manera:

 //Read body params
 string type = HttpContext.Current.Request.Form["type"];

 //read uploaded csv file
 Stream csvStream = HttpContext.Current.Request.Files[0].InputStream;

¿Cómo puedo probar esto, estoy usandoViolinista para probar esto, pero puedo enviar solo una cosa a la vez (ya sea tipo o archivo), porque ambas cosas son de diferente tipo de contenido, ¿cómo puedo usar el tipo de contenido?multipart / form-data yaplicación / x-www-form-urlencoded al mismo tiempo.

Incluso yo uso este código

    public static void PostDataCSV()
    {
        //open the sample csv file
        byte[] fileToSend = File.ReadAllBytes(@"C:\SampleData.csv"); 

        string url = "http://localhost/upload.xml";
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "multipart/form-data";
        request.ContentLength = fileToSend.Length;


        using (Stream requestStream = request.GetRequestStream())
        {
            // Send the file as body request. 
            requestStream.Write(fileToSend, 0, fileToSend.Length);
            requestStream.Close();
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        //read the response
        string result;
        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            result = reader.ReadToEnd();
        }

        Console.WriteLine(result);
    }

Esto tampoco envía ningún archivo al servidor.

Respuestas a la pregunta(2)

Su respuesta a la pregunta