Вот некоторый базовый код C #, который делает то, что вам нужно, где url - это URL-адрес вызываемого веб-сервиса, action - это мыльное действие сервиса, а envelope - строка, содержащая мыльный конверт для запроса:
WebRequest request = CreateHttpRequestFromSoapEnvelope(url, action, envelope);
WebResponse response = request.GetResponse();
private WebRequest CreateHttpRequestFromSoapEnvelope(string url, string action, string envelope)
{
WebRequest request = WebRequest.Create(new Uri(url));
request.Method = "POST";
request.ContentType = "text/xml";
request.Headers.Add(action);
ServicePointManager.Expect100Continue = false;
ApplyProxyIfRequired(request);
using (Stream stream = request.GetRequestStream())
{
using (StreamWriter streamWriter = new StreamWriter(stream))
{
StringBuilder builder = new StringBuilder();
builder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
builder.Append(envelope);
string message = builder.ToString();
streamWriter.Write(message);
}
}
return request;
}