Member 12442825 Ответов: 1

Отправьте запрос soap и зафиксируйте ответ


Привет,
Я пытаюсь построить программу WPF для создания Soap-запросов в виде xml-файлов в соответствии с WSDL, который добавляется в качестве ссылки на службу, проблема в том, что я не смог настроить прокси-класс для использования этого xml-файла и отправки его в качестве запроса, а также получения ответа . :
Необработанное исключение типа ' System.Сервис-модель.FaultException`1 ' произошло в mscorlib.dll дополнительная информация: ошибка приложения

public string returnSerializedxml(ввод объекта)
{
Помощью которого XmlSerializer XmlSerializer не = новый сериализатор XmlSerializer(вход.метод GetType());

использование (StringWriter textWriter = new StringWriter())
{
помощью которого XmlSerializer.Сериализация (textWriter, input);
верните textWriter.Метод toString();
}
}

частный недействительными обработчика button1_click(объект отправителя, RoutedEventArgs е)
{
ConsignmentEndpointClient proxy = новый ConsignmentEndpointClient();
сохранить Св = новый сохранить();
saveResponse response = новый saveResponse();
XmlDocument doc = новый XmlDocument();
doc. Load(путь);
response= proxy. save (sv); /*здесь происходит исключение*/

пробовать
{
Выход.Text = "Response: \n" + returnSerializedxml(ответ);
}
catch (ошибка исключения)
{
Выход.Text = "ошибка в запросе: \n" + ошибка;
}

Что я уже пробовал:

Я не уверен, но что-то не хватает, как FileStream или что-то подобное, я был бы благодарен за любой намек .

1 Ответов

Рейтинг:
1

dabuskol

Попробуйте ниже код, если я правильно понимаю ваш запрос.
передайте свой xml-файл Soapcommand

private string ProcessRequest(string SoapCommand)
   {
       string soapResult = string.Empty;
       try
       {
           WebRequest webRequest = CreateWebRequest();
           XmlDocument soapEnvelopeXml = new XmlDocument();
           soapEnvelopeXml.LoadXml(SoapCommand);


           using (Stream stream = webRequest.GetRequestStream())
           {
               soapEnvelopeXml.Save(stream);
           }

           using (WebResponse response = webRequest.GetResponse())
           {
               using (StreamReader rd = new StreamReader(response.GetResponseStream()))
               {
                   soapResult = rd.ReadToEnd();
               }
           }
       }
       catch (Exception)
       {
           throw;
       }
       return soapResult;
   }

   public static HttpWebRequest CreateWebRequest()
   {
       HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(@"http://111.11.31.116:45259/ilws/LinkSOAP");
       webRequest.Headers.Add(@"SOAP:Action");
       webRequest.ContentType = "text/xml;charset=\"utf-8\"";
       webRequest.Accept = "text/xml";
       webRequest.Method = "POST";
       return webRequest;
   }