Ola Wllfl,
Então existem duas coisas diferentes na sua questão, uma é "Como enviar um XML via POST" e a outra é "Como consumir um webservice via POST".
Veja, para se consumir um webservice via POST, não se trafega nenhum xml mesmo.... apenas o post como normalmente vc faria entre duas paginas asp...
Então.. pra consumir um webservice via post, vc pode usar esse metodo:
public string ExecutarWebMethod(string url, Dictionary<String, String> args) {
var formulario = new StringBuilder();
foreach (var key in args.Keys) {
if (formulario.Length > 0) formulario.Append("&");
var pair = String.Format("{0}={1}", key, args[key]);
formulario.Append(HttpContext.Current.Server.UrlEncode(pair));
}
var request = WebRequest.Create(url);
request.Method = "POST";
var writer = new StreamWriter(request.GetRequestStream());
writer.WriteLine(formulario.ToString());
writer.Flush();
var reader = new StreamReader(request.GetRequestStream());
return reader.ReadToEnd();
}
Se precisar agora enviar um XML via post... basta alterar o conteudo do StringBuilder "formulario" para o valor do seu XML....
Lembrando q a url deve incluir o metodo desejado: EX: "http://localhost:44402/WebService1.asmx/HelloWorld"