Как вызвать SOAP-запрос, который имеет вложение, используя HttpWebRequest C #? - PullRequest
0 голосов
/ 16 января 2019

У меня есть мыльный веб-сервис, который я должен прикрепить к нему файл и отправить его, используя HttpWebRequest в C #. Кто-нибудь может мне помочь. это код, который я пишу до сих пор.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("****") as HttpWebRequest;
request.Headers.Add("SOAPAction", "");
request.ContentType = "text/xml;charset=\"utf-8\"";
request.Accept = "text/xml";
request.Method = "POST";

#region soapEnvelop
string body = string.Format(@"
<soapenv:Header/>
<soapenv:Body>
  <gam:addAttach>
     <Username>user</Username>
     <MD5Password>pass</MD5Password>
     <did>1111</did>
     <myrid>2222</myrid>
  </gam:addAttach>
</soapenv:Body>");

string postData = string.Format("<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:gam='****'>{0}</soapenv:Envelope>", body);

#endregion

XmlDocument soapEnvelop = new XmlDocument();
soapEnvelop.LoadXml(postData);
MultipartFormDataContent form = new MultipartFormDataContent();

using (Stream stream = request.GetRequestStream())
{
    soapEnvelop.Save(stream);
}

IAsyncResult asyncResult = request.BeginGetResponse(null, null);
asyncResult.AsyncWaitHandle.WaitOne();
using (WebResponse webResponse = request.EndGetResponse(asyncResult))
using (StreamReader rd = new StreamReader(webResponse.GetResponseStream()))
{
    string soapResult = rd.ReadToEnd();
    soapResult.Dump();
}
...