Buenas a todos, estoy haciendo un cliente en C# para subir documentos a un servidor. Para ello tengo que enviar a un WS el mensaje donde especifico el archivo que quiero subir y su tamaño, asi como el propio fichero.
El código que tengo es el siguiente:
Código:
string oRequest = "";
oRequest = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tran=\"http://abengoa.com/schema/test/transfer\">\n";
oRequest += " <soapenv:Header/>\n";
oRequest += " <soapenv:Body>\n";
oRequest += " <tran:upload>\n";
oRequest += " <tran:fileName>" + fileName + "</tran:fileName>\n";
oRequest += " <tran:fileSize>" + fileSize + "</tran:fileSize>\n";
oRequest += " </tran:upload>\n";
oRequest += " </soapenv:Body>\n";
oRequest += "</soapenv:Envelope>";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.ContentType = "text/xml; charset=\"utf-8\"";
req.ContentLength = oRequest.Length;
req.Accept = "text/xml";
req.Method = "POST";
using (Stream stm = req.GetRequestStream())
{
using (StreamWriter stmw = new StreamWriter(stm))
{
stmw.Write(oRequest);
}
}
try
{
HttpWebResponse response = (HttpWebResponse) req.GetResponse();
StreamReader sReader = new StreamReader(response.GetResponseStream());
string strXMLReply = sReader.ReadToEnd();
sReader.Close();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strXMLReply);
}
catch (Exception ex) {}
Pero necesito añadir a este mensaje el propio fichero para que se suba al servidor. He estado buscando información y la verdad que soy nuevo en esto y no se como hacerlo; si me pudierais hechar una mano, no se como adjuntar un archivo a una peticion SOAP.
Un saludo y gracias.